已经有很多次在计算器上其中一个用户问一个问题是这样的...
我有一个主要
JPanel
包含一个孩子JPanel
。 当用户点击一个按钮,孩子JPanel
应该更改为不同JPanel
。 我怎样才能做到这一点。
通常情况下,用户实际上已经尝试实现这个问题,但无法得到它的工作。
每当我回答这个问题,我告诉他们做这样的事情(简言之)...
JPanel myFrame = new JPanel();
myFrame.remove(oldPanel);
myFrame.add(newPanel);
我认为这是相当合理的答案,我个人在我自己的许多Java项目中使用这个没有问题。 不过,我总是得到downvotes我的回答,每个人都只是说“使用CardLayout
”。
所以我的问题是,为什么大家如此着迷于CardLayout
,到了那里我的回答值得一downvote点? 为什么要选择使用CardLayout
,而不是添加/删除使用上面我的代码板?
作为进一步的问题,你还会提示CardLayout
为具有动态JPanels接口。 例如,我的大部分程序的实现自定义插件框架,其中可能有几百JPanels
,但我只加载和他们实际需要的显示面板。 对于正常使用的程序,大部分的面板将永远不会真正被加载或要求。 对于这种类型的情况下,将我的编码方法是最好的解决方案,因为据我所知, CardLayout
需要我真正创建所有的JPanels
尽管大多数永远不会被使用?