(Java Newbie - Panel Transitions) Как переключаться между панелями в кадре - PullRequest
0 голосов
/ 15 мая 2011

У меня есть следующий простой код, и я не знаю, как его изменить, чтобы иметь 3 отдельные панели для переключения, по одной для каждой кнопки:

package TouristLocations;

import javax.swing.*;

import java.awt.*;

public class buildApp extends JFrame {
  /**
     * 
     */
    private static final long serialVersionUID = 1L;

public static void main(String[] args){
    JFrame frame = new JFrame("Test");
    frame.setSize(400,500);
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    frame.setLayout(new GridBagLayout());
    GridBagConstraints c = new GridBagConstraints();

    JLabel title = new JLabel("Locations");
    title.setFont(new Font("Serif", Font.BOLD, 40));
    c.gridx = 0;
    c.gridy = 0;
    c.gridwidth = 3;
    frame.add(title, c);

    JButton b1 = new JButton("View Locations");
    c.gridx = 0;
    c.gridy = 1;
    c.gridwidth = 1;
    frame.add(b1, c);

    JButton b2 = new JButton("Insert Locations");
    c.gridx = 1;
    c.gridy = 1;
    frame.add(b2, c);

    JButton b3 = new JButton("Help");
    c.gridx = 2;
    c.gridy = 1;
    frame.add(b3, c);

    TextArea text1 = new TextArea(15,40);
    c.gridx = 0;
    c.gridy = 2;
    c.gridwidth = 3;
    frame.add(text1, c);

    frame.pack();


  }
}

спасибо

Ответы [ 3 ]

1 голос
/ 15 мая 2011

В дополнение к Как использовать панели с вкладками , вы можете посмотреть на CardLayout, упомянутое здесь и здесь .

1 голос
/ 15 мая 2011

Похоже, вы должны рассмотреть возможность использования JTabbedPane .

0 голосов
/ 25 апреля 2013

Вы должны создать основной контейнер:

JPanel mainContainer = new JPanel();

//creation of each child
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();

... поэтому каждая кнопка должна добавить эти панели в основной контейнер и изменить размер нового размера панели, примерно так:

//for button1:
mainContainer.add(panel1);
panel1.setSize(mainContainer.getSize());

... для действия button2 вы должны выполнить то же самое выше.

...