使用intelij idea gui designer在swing中点击jbutton时更改java的jpanel

fiei3ece  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(390)

我与intelij合作,我想做的是:

当按下panel1按钮时,右J面板应打开panel1,并与Panel2按钮类似,但出现的是一些小正方形。
代码:

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如下所示:

iq3niunx

iq3niunx1#

敲击panel1按钮时,右J面板应打开panel1并与Panel2按钮类似
那么右边的面板应该使用 CardLayout . 当你点击按钮时,你可以交换面板。
阅读swing教程中有关如何使用cardlayout的部分,了解更多信息和工作示例。

相关问题