我正在构建我的第一个Swing应用程序,试图弄清楚当用户选择JMenuItem时如何更新JFrame中主客户端区域的组件,该JDialog仅在这种情况下调用。以下是我想出的设计,但不确定它是否:(1)非常糟糕,(2)不是标准(因此最好)的方法,或者(3)我完全错了。非常感谢您的任何建议。
基本上,用户选择JMenuItem,然后启动一个JDialog。用户与对话框中的组件交互,然后单击“完成”。如果一切都有效,则JDialog关闭,我希望父窗口(JFrame)的状态更新(并最终扩展到其组件)。
我的设计:
有一个AppStateController,它是JFrame子类(我的应用程序)的成员。然后创建一个AppStateChangeListener和AppStateChange EventObject子类,以便每当对话框验证并关闭时,它就会触发一个AppStateChange事件。由于父JFrame是唯一注册的监听器,所以可以定义一个处理程序将事件传递给它。我会确保AppStateChangeEvent具有足够的元数据来描述所有可能的更改。
理论上,我喜欢这种方法:它应该是干净的,没有“意大利面”类型的多个控件调用,无论何时不同的事件触发。但是,我担心这可能过度设计。
在这里有什么最佳实践吗?我不是一个GUI的人!
基本上,用户选择JMenuItem,然后启动一个JDialog。用户与对话框中的组件交互,然后单击“完成”。如果一切都有效,则JDialog关闭,我希望父窗口(JFrame)的状态更新(并最终扩展到其组件)。
我的设计:
有一个AppStateController,它是JFrame子类(我的应用程序)的成员。然后创建一个AppStateChangeListener和AppStateChange EventObject子类,以便每当对话框验证并关闭时,它就会触发一个AppStateChange事件。由于父JFrame是唯一注册的监听器,所以可以定义一个处理程序将事件传递给它。我会确保AppStateChangeEvent具有足够的元数据来描述所有可能的更改。
理论上,我喜欢这种方法:它应该是干净的,没有“意大利面”类型的多个控件调用,无论何时不同的事件触发。但是,我担心这可能过度设计。
在这里有什么最佳实践吗?我不是一个GUI的人!