gpt4 book ai didi

Java 使组件能够相互通信

转载 作者:行者123 更新时间:2023-12-01 23:28:33 25 4
gpt4 key购买 nike

假设我有一个 gui,该 gui 由两部分组成,每个部分都有自己的类。
所以一个类包含一个 JLabel。
第二类包含一个带有提交按钮的文本字段。
我该如何让这两个组件相互通信?

这当然是一个简单的示例,但是如果我有两个类,其中一个用于提交数据,另一个用于显示提交的数据,那么如何使这两个组件进行通信?

最佳答案

一些想法:

  • 不要将此类绑定(bind)添加到 GUI 类,寻找类似 MVC 的模式
  • 单向更改传播(如示例中的输入 -> 输出)通常不会出现问题,但在许多情况下,需要可编辑组件组的完全同步。因此,在开发简单案例时可以牢记这一点,以便任何自定义类或接口(interface)具有良好的可重用性。
  • 避免使用标志进行无限循环更新,而不是比较组件值。
  • 无论你做什么,都要将事物分开,无论你使用什么模式,都不要添加双向引用(例如在 GUI 类 <-> Controller 之间)
无论 MVC 如何,都可能有一个 Controller 类,通过构造函数获取对 UI 对象的所有必要引用(即 JPanel 以及嵌套的 JTextFieldJLabel 等)。在构造时,该 Controller 可以将自身附加到这些嵌套组件。 Controller 最好包含嵌套的、内部的或可能匿名的类来实现监听器接口(interface),而不是将监听器接口(interface)添加到 Controller 本身。首先,封装这些监听器;其次,如果需要为多个组件(源)实现相同的接口(interface),则可以避免事件源的区分。这些监听器实现(可能非常通用 PropertyChangeListener )可以充当或使用 mediator 。对象(如上所述),用于更新其他组件。

关于Java 使组件能够相互通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19665320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com