2010-05-31 19 views
0

我在D模塊的第一個面板中使用了名稱文本字段。當我點擊生成按鈕僱用名稱自動更新顯示面板僱員名稱在E模塊中的Textfield。所以在這兩個面板中的值必須相同。我怎樣才能從D模塊獲取值並通過使用Java Swing在E模塊中進行更新。如何從第一個面板獲取值並在Java Swing中插入第二個面板

+0

您可能會發佈一個說明問題的簡短自包含正確(可編譯)示例(sscce)。 http://sscce.org/ – trashgod 2010-05-31 03:06:25

回答

1

Swing嚴重依賴Obeserver模式。您可以使用此模式來幫助您的E模塊知道何時生成按鈕被點擊。

如果您的E模塊提供了您的D模塊的引用,您可以將E作爲ActionListener添加到生成按鈕。然後,您可以在觸發操作時從D模塊中拉出文本。蠻力方法如下:

public class DModule { 
    private JButton genButton = new JButton("generate"); 
    private JTextField empNameTF = new JTextField();  

    // ---more code --- 


    public void addGenButtonListener (ActionListener l) { 
      genButton.addActionListener(l); 
    } 

    public String getEmpName() { 
      return empNameTF.getText(); 
    } 
} 


public class EModule implements ActionListener { 
    DModule d = null; 
    JTextField myEmpNameTF = new JTextField(); 

    public EModule (DModule d) { 
      this.d = d; 
      d.addGenButtonListener(this); 
    } 

    // --- more code --- 

    public void actionPerformed(ActionEvent event) { 
      myEmpNameTF.setText(d.getEmpName());  
    } 

} 
+0

非常感謝好友 – charan 2010-05-31 03:25:27

+1

@charan - 如果這解決了您的問題,請考慮將此答案標記爲已接受 – Gnoupi 2010-05-31 07:51:37

相關問題