2010-05-05 132 views
1

我有一個表格分爲兩類。每個類表示部分表單上的小部件。允許這些類在彼此之間共享數據並相互更新的最佳方式是什麼?班級之間的溝通

例如: 單擊A類中的按鈕。更新C類文本字段

回答

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模式,但這是更好的方法。

0

您可以創建一個保存所有表單對象的類。表單類都知道父類,並通過它進行通信。

如果在類A中單擊按鈕,則類A會調用父類中的方法,並且父類會通知類C以更新其文本字段。

0

不要認爲小部件。在模型上設計應用程序。將窗口小部件作爲這些模型的窗口。 (不要不必要地擴展類。)

0

看看Mediator pattern,它可以給你一些想法。另外,JFace Databinding框架的目標是對象之間的值的同步,儘管我發現它記錄的很差並且沒有多少樂趣可用。 JFace_Data_Binding