Bor*_*lov 6 java oop swing design-patterns
我有一个嵌套面板的GUI(带有嵌套面板的标签等).我需要将域对象传递给深层嵌套的面板.我可以想到两种方式:
在一个地方实例化所有gui对象,比如帧类.这将使传递域对象变得简单,但Frame类将是巨大的并且难以管理.
每个面板都有自己的类,我们在其中实例化和布局其
组件.现在它易于维护,类很干净,但是如何
传递我的域对象链呢?我不想通过甚至不知道它们
存在的面板构造器来链接它们.顶级面板将有大量的这些对象开始.
Niether的方式似乎是一种洗礼.你通常如何接受这个?
当我组装 Java Swing GUI 时,每个主要 GUI 元素都有一个数据模型。请注意,这不是 MVC 模式。这更像是一种本地MV模式。如果需要,您可以将 GUI 元素侦听器视为“控制器”。
每个面板都有自己的类,我们在其中实例化和布局其组件。现在它很容易维护并且类很干净,但是我如何向下传递我的域对象?
你的想法是正确的,尽管你不需要做太多的传球。
我的JFrame(或JApplet)将有一个全局类型字段的关联模型类。该模型类的实例通常会传递给子元素。这是为了允许子元素在选择菜单选项时正确反应(作为示例)
我JPanel(s)将有一个关联的模型类,用于维护文本或按钮子元素的状态。
更复杂的子元素(例如 aJList或 a JTree)已经具有关联的数据模型。为了方便起见,我可能会将这些关联的数据模型包装到JPanel模型类中。
子元素将触发某种选择或动作侦听器。除了与父级关联的模型类之外,其中一些侦听器可能还需要访问模型类。在这种情况下,您必须将模型类的实例传递给侦听器。