如何在Swing中创建单独的屏幕?
我不断地发现自己正在建立有多个屏幕的程序。例如,考虑一个程序,其中初始布局提供两个按钮:创建文件或编辑文件。点击一个按钮后,用户将进入一个新的屏幕,支持他们按下的任何按钮。然后他们点击一个后退按钮,并将它们带回程序的主屏幕。我想知道如何最好地做这样的单独菜单。最好是创建单独的方法来设置每个屏幕,然后在点击按钮(如“后退”按钮)时调用适当的方法?这正是我想要做的,但是看到有很多方法可以做到这一点,我想获得有关更改显示屏幕的更好方法的意见。 谢谢,AJ如何在Swing中创建单独的屏幕?
中描述的步骤,根据你对原始问题的第二个评论,我认为最好是看看使用面板。
看看使用多个面板的每一个活动,你想:
JPanel firstPanel = new JPanel();
JPanel secondPanel = new JPanel();
JPanel thirdPanel = new JPanel();
确保所有面板都隐藏初始化时,然后只需换一个面板使用在一个按钮单击事件另一个问题:
firstPanel.hide();
secondPanel.show();
根据您使用的布局,还有其他技术。例如,而不是删除和添加(或在显示和隐藏多个面板),如果使用的BorderLayout可以简单与另一个面板“替换”一个BorderLayout的区域,然后重新验证:
container.add(BorderLayout.CENTER, thirdPanel);
container.validate();
还要注意,不同的操作系统(Windows,Mac等)将有不同的风格,他们喜欢坚持。例如,你提到了一个典型的Windows安装程序;人们期望安装人员以某种方式观看和工作,但在不同的操作系统上,则会出现完全不同的期望和外观。
延伸阅读:
编辑:
我想知道怎么做最好单独的菜单是这样的。最好是创建单独的方法来设置每个屏幕,然后在点击按钮(如“后退”按钮)时调用适当的方法?
这归结为个人偏好。你是否希望在启动时初始化所有东西,并且在面板之间快速交换(或者你称之为“屏幕”),或者你希望更快的初始启动,并且实际上每个组件都需要“延迟加载” 。
就我个人而言,我选择在整个初始化过程中的所有事情(除非在应用程序启动过程中有很多事情要做或加载)。这真的归结为个人偏好。
另一个编辑: 说起布局,也许不同的布局风格也将帮助你,这样的事情:
希望这有点帮助的。
可能是我见过的最深入的答案。谢谢! – 2012-07-27 01:10:36
我在显示器(或:GraphicsEnvironment,GraphicsDevice)中感受到你并不是指“屏幕”。 也许有点澄清你究竟是什么意思屏幕? – 2012-07-24 21:06:14
我认为这可能有点混乱,但不知道如何最好地说出来。这就像当你在安装向导中一样,你点击“下一步”或“后退”按钮,窗口内的所有内容都会改变。每一个单独的东西都是我正在考虑的屏幕。你点击“下一步”,它会带你到下一个“屏幕”。我真的不知道如何描述它。 – 2012-07-25 02:51:19
感谢您的澄清,我添加了一个答案,我希望得到你想要的。 – 2012-07-25 08:56:47