2015-01-29 1 views
0

Я работаю над программой сервера клиентов RMI. И для моего класса клиента я хочу, чтобы я запустил клиент, чтобы иметь окно для проверки пароля. Если пароль неправильный, появится всплывающее сообщение, и если это правильно, текущее окно нужно закрыть, и появится другое окно с параметрами для работы с сервером. Код для такого действия будет примерно таким:Вызов нового окна после проверки пароля в Java

//Button for checking password - actionListener 
if(!checkPass(btnLogin.getPassword()) 
    JOptionPane.showMessageDialog(null,"ALERT MESSAGE",JOptionPane.WARNING_MESSAGE); 
else 
    // do something so this window closes and a new window, 
    //with say one button for example, pop-ups 

Как мне сделать что-то подобное? Текущий код - это всего лишь обратная сторона клиента с удаленными методами, и он также наследует от jFrame, который в настоящее время является окном проверки пароля. Имейте в виду, что я пытаюсь сохранить все клиентские gui и функциональность в одном классе. Должно ли два окна быть jPane s и как я должен с ними справиться. Я потерян, поэтому приветствуется всякая помощь :)

ответ

1

Вы хотите попытаться отделить и отделить ответственность. То есть, имя входа в систему не должно ничего больше, чем собирать учетные данные у пользователя, чтобы проверить эти учетные данные. Он не должен быть ответственным за перемещение пользователя на следующее представление, что ответственность принадлежит к другой части вашего приложения (или контроллера)

  1. Wrap компонента входа в модальном JDialog. Из вашего основного класса вы можете отобразить это диалоговое окно, оно будет блокироваться до тех пор, пока диалог не будет закрыт (вызов dispose в диалоговом окне)
  2. После того, как диалог был закрыт и текущий пользователь проверен, вы можете создать свое главное окно приложения как в нормальный

Это an example диалога входа в основе MVC, в то время как это может показаться сложным, это будет хороший урок в разделении ответственности и введении в к Model-View-Controller парадигме