在课堂之间进行交流

我有一个分为两个类的表单。 每个类代表表单部分的小部件。 允许这些类在彼此之间共享数据并相互更新的最佳方法是什么。

示例:单击A类中的按钮。 更新C类中的文本字段

你可以做的很短:

public class ButtonFrame extends JFrame implements ActionListener { private TextFieldFrame frame; public ButtonFrame(TextFieldFrame frame) { this.frame = frame; // init your components and add this as actionlistener to the button .... } public void actionPerformed(ActionEvent evt) { frame.notifyButtonPressed(); } } 

另一课:

 public class TextFieldFrame extends JFrame { private JTextField field = ...; // init in your constructor public void notifyButtonPressed() { field.setText("Yes man!! The button is pressed by the user!"); } } 

同样,这是你必须要做的很短的事情。
您也可以使用Singleton模式,但这是一种更好的方法。

您可以创建一个包含所有表单对象的类。 表单类都知道父类并通过它进行通信。

如果在类A中单击了一个按钮,则类A调用父类中的方法,而父类通知类C更新其文本字段。

不要认为小部件。 在模型上设计应用程序。 将小部件作为窗口放到这些模型上。 (并且不要不必要地扩展类。)

看看Mediator模式 ,它可以给你一些想法。

此外,JFace数据绑定框架的目标是在对象之间同步值,尽管我发现它的文档记录很差并且使用起来并不是很有趣。 JFace_Data_Binding