Java Swing设计

sta*_*orn 2 java swing

我有一个关于编码Swing UI的问题.如果我想制作带有某些选项的软件,例如在第一帧上我有三个按钮(New,Option,Exit).

现在,如果用户单击新按钮,我想将Frame中的整个内容更改为其他内容.我知道我必须使用addActionListener那个按钮.但我的问题是如何更改框架中的内容.创建新框架然后使用setVisible()不是我的选择.

frame.remove()如果需要删除几件事情,那么使用所有对象似乎很尴尬.还是正确的方式?

cam*_*ckr 5

查看卡片布局.我也可能使用菜单项而不是按钮.


tra*_*god 5

在这种情况下,CardLayout确实是更好的选择; 但是,当场合需要时,可以使用或方法从Container中删除Component.之后,必要的步骤是调用[ ](http://java.sun.com/javase/6/docs/api/java/awt/Container.html#validate())方法再次布置容器的子组件.Oscar Reyes的例子使用了Frame的[ ](http://java.sun.com/javase/6/docs/api/java/awt/Window.html#pack())方法,继承自Window,实现这个效果.在该示例中,该方法以类似的方式重建显示面板.remove()removeAll()validate()pack()resetGame()