Я предлагаю следующий простой подход, при котором вы создаете классы для представления панели входа в систему и основного фрейма приложения. В примере я создал панель входа в систему, а не фрейм, чтобы можно было встроить ее в модальное диалоговое окно.
// Login panel which allows user to enter credentials and provides
// accessor methods for returning them.
public class LoginPanel extends JPanel {
public String getUserName() { ... }
public String getPassword() { ... }
}
// Main applicaiton frame, initialised with login credentials.
public class MainFrame extends JFrame {
/**
* Constructor that takes login credentials as arguments.
*/
public MainFrame(String userName, String password) { ...}
}
// "Bootstrap" code typically added to your main() method.
SwingUtilities.invokeLater(new Runnable() {
public void run() {
LoginPanel loginPnl = new LoginPanel();
// Show modal login dialog. The code following this will
// only be executed when the dialog is dismissed.
JOptionPane.showMessageDialog(null, loginPnl);
// Construct and show MainFrame using login credentials.
MainFrame frm = new MainFrame(loginPnl.getUserName(), loginPnl.getPassword());
frm.setVisible(true);
}
});