- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有一个构建 GUI 的类并有一个方法 updateMainUI(String text)
将文本附加到 JTextArea
。目前,我正在使用抽象类和方法来更新来自不同类的字段,但我想知道这是否是“正确”的方法?
我现在有三个抽象类,它们的 protected abstract updateUI(String text)
我在 GUI 类中重写的方法,以便在需要时更新字段,但我在多个类中执行相同的操作,现在我觉得我需要另一个类来执行完全相同的操作。
有更好或更容易接受的方法吗?
最佳答案
从你的问题来看,很难100%确定,但是,通常鼓励使用 Model–view–controller解决此类问题的方法。
也就是说,模型定义了“虚拟”状态, View 向用户表示此状态, Controller 控制从 View 发起的对模型的更改...
当 View 发生变化时,模型会通知 View ,因此它可以更新状态,并且当 View /状态的某些部分发生变化并可能反射(reflect)在模型中时, View 会通知 Controller 。
为此,我鼓励您定义某种模型,该模型通常由可以由程序的各个方面使用的接口(interface)
来描述。对模型的更新不需要来自用户/UI,但您需要确保清楚地记录通知何时可能来自事件调度线程之外的不同线程,以便您的 UI 代码可以采取正确的操作并同步更新。
因此,根据您的示例,您的模型可能有一个方法调用 setText
(或类似的方法),它会向注册的监听器触发某种事件通知。
模型的这个实例将在应用程序的各个类之间共享
你的主 UI 将是这些类之一,监听模型状态的变化,当它检测到变化时,它会相应地更新其状态。
这是 observer pattern 的示例您会看到它在 Swing 中得到广泛使用(通过它的监听器/事件 API)
关于java - 如何从多个类更新 GUI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25026458/
我是一名优秀的程序员,十分优秀!