代码之家  ›  专栏  ›  技术社区  ›  jacknad

如何在JavaSwing窗体之间发送信号?

  •  1
  • jacknad  · 技术社区  · 16 年前

    我明白 "How to Use Actions" 教程,但不知道如何使它在多个JFrame窗体之间工作。 我尝试将updatembobox方法设置为public static,以便可以从其他窗体访问它, 但是netbeanside拒绝允许它,因为自动生成的非静态变量jComboBox不能从静态上下文引用。 一些小部件位于主窗体上,其他小部件位于辅助窗体上。 例如,主窗体使次窗体可见;次窗体对配置进行一些更改;然后用户通过按SAVE按钮隐藏次窗体。 一个行动是适合这个还是其他方法更合适?

    public class Controller extends javax.swing.JFrame {
        ...
        private javax.swing.JComboBox jComboBox;
        private void updateComboBox() {
            String[] names = Configuration.getNames();
            for (String n : names) {
                jComboBox.addItem(n);
            }
            ...
    
    2 回复  |  直到 16 年前
        1
  •  5
  •   Erkan Haspulat    16 年前

    一个控制器类可以保存对帧的引用并管理 你需要什么?您还可以查看观察者模式,其中您的主要表单 第二种形式所作的改变。

        2
  •  1
  •   npinti    16 年前

    您可以做的是创建第一个窗体,然后从第一个窗体中创建设置窗体。然后可以使用线程同步(例如锁)使第一个窗体等待,直到用户按下设置窗体上的“确定按钮”。一旦按下“确定按钮”,锁被移除,第一个窗体将通过调用与第二个窗体相关的方法继续执行,以便它可以访问用户刚刚输入的数据。