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