我很好奇,是否每次用户希望从后续的JPanel返回该JPanel时都创建一个新的主JPanel对象是一种好习惯?
仅供参考,我的Swing应用程序有一个JFrame,其第一个对象是带有三个JButton(其中一个是Review按钮)的mainJPanel。
假设用户按下了“评论”按钮。该程序在JFrame的内容窗格上调用removeall(),并创建一个新的reviewJpanel对象,该对象具有一个JTable和一个JButton(我们将其称为Finish Review)。
假设用户完成审阅并按下“完成审阅”按钮。该程序的目的是返回mainJPanel屏幕,因此它将创建一个与上面第2段完全相同的新mainJPanel对象。
我想知道每次创建一个新的mainJPanel对象是否多余?但是,如果我要以某种方式保留mainJPanel,当用户按下Finish Review按钮时,如何从JFrame中删除reviewJPanel?
我希望这些问题对Swing的其他新用户有用。我有几本Swing书籍,但遗憾的是,它们似乎忽略了处理“主要” JPanel和多个后续JPanel以及来回切换的问题。
最佳答案
如果一次只有一个面板,只需用setContentPane
更改面板即可。首次创建框架时,请执行frame.setContentPane(mainJPanel);
。然后,当用户单击按钮时,执行frame.setContentPane(otherPanel);
。 mainJPanel
将替换为新面板,当用户完成操作后,您可以再次使用frame.setContentPane(mainJPanel);
将主面板放回原处。您不必浪费资源来重新创建面板,它比使用removeAll
并添加新面板更快,更高效。