我不断地发现自己在构建有多个屏幕的程序。例如,考虑一个程序,其中初始布局提供两个按钮:创建文件或编辑文件。单击一个后,它会将用户带到一个支持他们按下的任何按钮的新屏幕。然后他们单击后退按钮,然后将他们带回程序的主屏幕。我想知道如何最好地做这样的单独菜单。最好只创建单独的方法来设置每个屏幕,然后在单击按钮(如“后退”按钮)时调用适当的方法?这就是我想做的事情,但鉴于有很多方法可以做到这一点,我想就改变显示屏幕的可能更好的方法获得意见。谢谢, AJ
3 回答
根据您对原始问题的第二条评论,我认为最好看看使用面板。
查看为您想要的每个活动使用多个面板:
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 安装程序;人们开始期望安装程序以某种方式看起来和工作,但在不同的操作系统上,会有完全不同的期望和外观。
进一步阅读:
编辑:
我想知道如何最好地做这样的单独菜单。最好只创建单独的方法来设置每个屏幕,然后在单击按钮(如“后退”按钮)时调用适当的方法?
这取决于个人喜好。您是否想在启动时初始化所有内容并在面板之间进行更快的切换(或者您称它们为“屏幕”),或者您是否想要更快的初始启动并在需要时对每个组件进行“延迟加载” .
就我个人而言,我在初始化期间选择了所有内容(除非在您的应用程序启动期间有很多事情要做或加载)。这真的归结为个人喜好。
另一个编辑:说到布局,也许不同的布局风格也会帮助你,像这样:
希望这会有所帮助。
看看Actions 框架,它是开发通用级别操作以供重用的好方法
如果屏幕状态取决于前一个屏幕的状态(例如在向导中),您可以按照本文中描述的步骤进行操作