CardLayout与手动添加/删除JPanels有什么特别之处?
2022-09-03 13:25:14
在StackOverflow上有很多次,用户会问这样的问题......
我有一个包含孩子的主菜。当用户单击按钮时,孩子应更改为其他 。我怎样才能做到这一点。
JPanel
JPanel
JPanel
JPanel
通常,用户实际上已经尝试实现此问题,但无法使其正常工作。
每当我回答这个问题时,我都会告诉他们做这样的事情(简单地说)......
JPanel myFrame = new JPanel();
myFrame.remove(oldPanel);
myFrame.add(newPanel);
我认为这是一个非常合理的答案,我个人在我自己的许多Java项目中都毫无问题地使用它。但是,我总是为我的答案投反对票,每个人都只是说“使用一个”。CardLayout
所以我的问题是,为什么每个人都如此着迷,以至于我的答案值得投反对票?为什么我应该选择使用而不是使用上面的代码添加/删除面板?CardLayout
CardLayout
作为进一步的问题,您还会建议具有动态JPanels的接口吗?例如,我的大多数程序都实现了一个自定义插件框架,其中可能有数百个,但我只在实际需要时才加载和显示面板。对于该程序的正常使用,大多数面板实际上永远不会被加载或需要。对于这种类型的场景,我的编码方法是否是最好的解决方案,因为我的理解是,这将要求我实际创建所有,即使大多数永远不会被使用?CardLayout
JPanels
CardLayout
JPanels