несколько JFrames - PullRequest
       7

несколько JFrames

2 голосов
/ 22 февраля 2010

я создаю Java-приложение с NetBeans. у меня есть два jframes для входа и основного приложения. я хочу загрузить jframe для входа в систему во время выполнения, а затем загрузить jframe для основного приложения, когда аутентификация пользователя правильная. экземпляр логина jframe должен быть уничтожен после того, как основное приложение jframe уже загружено. Кроме того, я хочу, чтобы информация о пользователе из логина jframe передавалась в основное приложение jframe. как мне этого добиться?

Ответы [ 2 ]

3 голосов
/ 22 февраля 2010

Я предлагаю следующий простой подход, при котором вы создаете классы для представления панели входа в систему и основного фрейма приложения. В примере я создал панель входа в систему, а не фрейм, чтобы можно было встроить ее в модальное диалоговое окно.

// 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);
  }
});
1 голос
/ 22 февраля 2010

Расширьте JFrame, чтобы создать основной фрейм. Добавьте в него конструктор для принятия информации о пользователе.

На экране входа в систему, когда аутентификация прошла успешно, создайте экземпляр основного фрейма, передавая информацию для входа. Вызвать dispose () для фрейма входа в систему и вызвать setVisible(true) для основного фрейма.

MainFrame mainFrame = new MainFrame(userInput.getText());
this.dispose();
mainFrame.setVisible(true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...