java JFrame更新修改了另一个JFrame

标签 java swing jframe actionlistener repaint

我有一个屏幕 (JFrame),它从文件中获取一些初始人口。但是,如果由于某种原因该文件缺失或填充不正确,则许多字段将被阻止为不可编辑,并且用户被迫单击设置按钮,这会生成另一个 JFrame 屏幕。如果用户随后正确更新文件,我希望用新文件数据重新填充原始屏幕,可以这样做吗?

所以我有一个设置按钮的 Action 监听器,它调用 Java 类“设置”。 “设置”有一个按钮“完成”,它将激活数据库/文件更新,成功更新/将解锁原始框架

    btnSettings.setText("Settings");
    btnSettings.setFont(font4);
    btnSettings.setBounds(new Rectangle(15, 515, 140, 40));
    btnSettings.setToolTipText("Default Settings");
    btnSettings.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent evt) {
            settingsPerformed();
        }
    }) ;

private void settingsPerformed() {

    JFrame settings = new Settings();
    settings.setVisible(true);
}

然后是一个新的设置类

公共(public)类设置扩展了JFrame 实现 ActionListener {

private.....         
public Settings() {

    this.getContentPane().setLayout(null);
    this.setSize(new Dimension(450, 340));
    this.setTitle("Default Settings");

    this.setBackground(new Color(255, 247, 214));
    this.setResizable(true);
    this.setFont(font1);

    pnlSettingsData.setBounds(new Rectangle(10, 10, 405, 285));
    pnlSettingsData.setBorder(BorderFactory.createLineBorder(Color.blue, 1));
    pnlSettingsData.setName("Settings");
    pnlSettingsData.setLayout(null);  


    btnDone.setText("Done");
    btnDone.setFont(font3);
    btnDone.setBounds(new Rectangle(100, 250, 73, 20));
    btnDone.setToolTipText("Click when ready for updating");
    btnDone.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                    doneActionPerformed(evt);
                    setVisible(false) ;
            }
    });


    this.getContentPane().add(pnlSettingsData, null);            
    setDefaultCloseOperation(HIDE_ON_CLOSE);
    setLocation(150,200);
    //pack();
    setVisible(true);
}


private void doneActionPerformed(ActionEvent evt) { 

    // include here the data base updates      
}   

public void actionPerformed(ActionEvent e) {
}

}

最佳答案

你可以...

  1. 使用模态 JDialog 收集用户的信息,当它关闭时,您可以从当前帧重新加载文件。
  2. 允许第一帧注册一个监听第二帧的 Action ,当调用第二帧时(大概是当用户单击接受按钮时),您将重新加载文件并更新 UI

关于java JFrame更新修改了另一个JFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59347964/

相关文章:

java - Java 中的多个数组和对象 JSON

java - 删除txt文件中以字符串开头的所有行? ( java )

java - 点击(160.0,120.0)无法完成! (java.lang.SecurityException : Injecting to another application requires INJECT_EVENTS permission)

java - 在 java netbeans 中构建后,构造函数中调用的方法不起作用

Java - MouseWheelEvent 触发两次

java - 透明背景上的文物

以 XML 描述的 Java GUI

java动态调整图像大小以适应gridlayout中的网格

java - 包装 jframe

java - 如何让一个按钮打开一个新窗口并关闭旧窗口