在单击按钮时更改JFrame中存在的JPanel时打开的新窗口

时间:2014-10-05 10:44:16

标签: java swing

我正在netbeans中创建一个项目,我使用swing创建GUI。

我想在点击按钮时更改框架中的面板。为了实现这一目标,我创建了一个名为Global的类,如下所示:

public class Global {
    public static void changePane (final JPanel p) {
        MainFrame f = new MainFrame();
        changePane(f, p);
    }
    public static void changePane(final JFrame f,final JPanel p){
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                f.getContentPane().removeAll();
                f.setContentPane(p);
                f.repaint();
                f.setVisible(true);
            }
        });
    }
 }

所以有一个MainFrame类,其主要方法如下:

public static void main (String args[]) {
    Global.changePane(new MainPanel());
}

MainFrame中,有几个按钮/菜单项。执行的动作方法如下

private void jMenuItem4ActionPerformed(java.awt.event.ActionEvent evt) {
    Global.changePane(new addworkload());
}   

因此,当我尝试更换框架中的面板时,会打开一个新窗口。我想防止这种情况发生,即我希望在同一个窗口中替换面板。请帮忙。

0 个答案:

没有答案