如何在java swing表单之间发送信号?

jac*_*nad 1 java

我理解"如何使用行动"教程,但无法弄清楚如何使它在多个JFrame表单之间工作.我尝试将updateComboBox方法设置为public static,因此可以从其他表单访问它,但NetBeans IDE拒绝允许它,因为无法从静态上下文引用自动生成的非静态变量jComboBox.主窗体包含需要根据用户输入(菜单,按钮,文本字段等)进行修改的JComboBox.一些小部件是主要形式,其他小部件是次要形式.例如,主要表单使辅助表单可见; 辅助表单对配置进行了一些更改; 然后用户通过按SAVE按钮隐藏辅助表格.辅助表单如何最好地让主表单知道配置已更新,现在需要将更改应用于JComboBox?动作是否适合这种情况,还是其他一些方法更合适?

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);
        }
        ...
Run Code Online (Sandbox Code Playgroud)

Erk*_*lat 5

控制器类如何保存对框架的引用并管理所需的信号?您还可以查看Observer模式,其中主表单将监听辅助表单所做的更改.