java - 如何从第一个面板获取值并插入到 Java Swing 中的第二个面板

标签 java swing

我在 D 模块的第一个面板中使用了名称文本字段。当我单击生成按钮时,雇员姓名会在 E 模块中的显示面板雇员姓名文本字段中自动更新。因此两个面板中的值必须相同。如何使用 Java Swing 从 D 模块获取值并在 E 模块中更新。

最佳答案

Swing 严重依赖观察者模式。您可以使用此模式来帮助您的 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());     
     }

}

关于java - 如何从第一个面板获取值并插入到 Java Swing 中的第二个面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2941134/

相关文章:

java - 线程安全在 Java 中实现单例模式的有效方法?

Java Swing JTextArea 滚动条未显示在内部

java - 在 swing 问题中编写 GUI

java - JButton 和 jgraphx 不会同时出现

java - Android Activity 上下文为空

java - 文本字段中没有文本

java - 在 Lollipop 之前的设备(kit-kat)上使状态栏半透明,同时与果冻 bean 兼容

java - 只有最后连接的客户端才能收到消息

java - 判断JTree中的节点是否被删除

java - 调用方法?