如何从第一个面板获取值并在Java Swing中插入第二个面板

时间:2010-05-31 02:46:24

标签: java swing

我在D模块的第一个面板中使用了名称Text Field。当我点击生成按钮时,应用名称会在E模块的显示面板Employe Name Textfield中自动更新。所以在两个面板中,值必须相同。如何通过使用Java Swing从D模块获取值并在E模块中更新。

1 个答案:

答案 0 :(得分: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());     
     }

}