0

我正在与 IntelIJ 合作,我想做的是:

https://i.stack.imgur.com/4MOgI.png

在点击 Panel1Button 时,右侧的 JPanel 应该打开 Panel1 并与 Panel2Button 类比,但会出现一些小方块。

代码:

GridBagLayout layout = new GridBagLayout();
Panel1 p1;
Panel2 p2;
private JButton panel1Button;
private JButton panel2Button;
private JPanel DynamicPanel;
private JPanel mainPanel;

public Frame1(){
    p1 = new Panel1();
    p2 = new Panel2();

    DynamicPanel.setLayout(layout);
    GridBagConstraints c = new GridBagConstraints();
    c.gridx = 0;
    c.gridy = 0;
    DynamicPanel.add(p1);
    c.gridx = 0;
    c.gridy = 0;
    DynamicPanel.add(p2);
    p1.setVisible(false);
    p2.setVisible(false);

    panel1Button.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            System.out.println("Button1");
            p1.setVisible(true);
            p2.setVisible(false);
        }
    });
    panel2Button.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            System.out.println("Button2");
            p1.setVisible(false);
            p2.setVisible(true);
        }
    });
}

我还想将 p1 和 p2 面板分成不同的类。Panel1 和 Panel2 如下所示:

https://i.stack.imgur.com/jneQP.png

4

1 回答 1

0

在点击 Panel1Button 时,右侧的 JPanel 应打开 Panel1 并与 Panel2Button 类比

那么右边的面板应该使用CardLayout. 然后,您可以在单击按钮时交换面板。

阅读 Swing 教程中有关如何使用 CardLayout的部分以获取更多信息和工作示例。

于 2017-01-03T17:04:03.130 回答