I have a screen (JFrame) that picks up some of its initial population from a file. However, if the file is for some reason absent or incorrectly populated then many fields are blocked as non-editable and user is forced to click a settings button, which generates another JFrame screen. If the user then updates the file correctly I want the original screen to be re-populated with the new file data, can this be done?
So I have an action listener for the settings button, which calls Java class "settings". "settings" has a button "Done" which will activate the database/file updates, successful updates/ will unblock the original frame
    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);
}
and then a new class for settings
public class Settings extends JFrame implements 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) {
}
}
 
    