在课堂之间进行交流

时间:2010-05-05 11:59:26

标签: java swt

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

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

4 个答案:

答案 0 :(得分:3)

你可以做的很短:

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模式,但这是一种更好的方式。

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

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

相关问题