【发布时间】:2016-11-23 11:06:49
【问题描述】:
好的,目前我正在尝试制作一个多窗口程序。
& / 重绘内容窗格: contentPane.add(newWindowPanel);
currentWindowPanel.setVisible(false);
newWindowPanel.setVisible(true);
contentPane.validate();
contentPane.repaint();
现在,我正在尝试和部分完成的是创建一个扩展 JPanel 的类,并且该类是我将要创建的许多其他 JPanel 类的层次结构的顶部。
在那个类中我有这个方法:
public void updateContentPane(Container contentPane, JPanel currentPanel, JPanel nextPanel){
contentPane.add(nextPanel);
currentPanel.setVisible(false);
nextPanel.setVisible(true);
contentPane.validate();
contentPane.repaint();
}
当我在其中一个子类中调用此方法时,它不起作用。
updateContentPane(WindowMain.contentPane, this, mainMenuClass);
每个子类都继承了 JPanel 特性。
“WindowMain”是一个扩展 JFrame 的类,“contentPane”是一个静态容器变量,用于保存框架 contentPane。
“this”表示当前类(继承 JPane),但“this”实际上不起作用new Object() 起作用。
“mainMenuClass”同样继承了JPanel,并且已经在这个类中实例化了。
我的目标是通过调用该方法从一个场景跳转到另一个场景。但它通过代码(调试)但没有任何反应。但是,如果我在方法中获取代码并将其放在按钮侦听器中,它就可以正常工作。
(对不起,写了这么多,可能会带来一些混乱,但我仍然需要弄清楚这一点,并且我会在 contentPane 已经包含一个类的情况下设置条件,因此无需提及)
【问题讨论】:
-
能否添加调用此方法的代码,以便我们查看它是否真正在运行?
标签: java jframe jpanel contentpane multi-window