我正在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());
}
因此,当我尝试更换框架中的面板时,会打开一个新窗口。我想防止这种情况发生,即我希望在同一个窗口中替换面板。请帮忙。