【问题标题】:Changing JPanel while hitting JButton in Swing using IntelIJ IDEA GUI Designer使用 IntellIJ IDEA GUI Designer 在 Swing 中点击 JButton 时更改 JPanel
【发布时间】:2017-01-03 16:53:09
【问题描述】:

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

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

【问题讨论】:

    标签: java swing intellij-idea gui-designer


    【解决方案1】:

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

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

    阅读 How to Use CardLayout 上的 Swing 教程部分,了解更多信息和工作示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 2012-07-17
      • 2020-03-09
      • 2010-11-02
      • 2013-03-11
      相关资源
      最近更新 更多