как обрабатывать типы опций в JOptionPane.showConfirmDialog - PullRequest
1 голос
/ 14 марта 2012

Мне нужен способ написания кода для обработки события при нажатии кнопки в панели JOptionPane. Я на самом деле использую JOptionPane для вставки имени пользователя и пароля, которые, если правильно и нажата кнопка «ОК», JOptionPane исчезает, и родительский JFrame остается активным, и если нажата кнопка отмены, программа завершается. мой пример кода ниже показывает только панель JOptionp и нажатие любой кнопки просто закрывает ее `JPanel панель = новая JPanel (); panel.setLayout (новый GridLayout (4, 1)); // Создать ярлык с текстом (Имя пользователя) JLabel username = new JLabel ("Имя пользователя");

    //Create a label with text (Password)
    JLabel password = new JLabel("Password");

    //Create text field that will use to enter username
    JTextField textField = new JTextField(12);

    //Create password field that will be use to enter password
    JPasswordField passwordField = new JPasswordField(12);

    //Add label with text (username) into created panel
    panel.add(username);

    //Add text field into created panel
    panel.add(textField);

    //Add label with text (password) into created panel
    panel.add(password);

    //Add password field into created panel
    panel.add(passwordField);

    //Show JOptionPane that will ask user for username and password
    JOptionPane.showConfirmDialog(mainFrame, panel, "Enter username and password", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);`

Ответы [ 2 ]

4 голосов
/ 14 марта 2012

Эти диалоги возвращают значение int, которое может интерпретироваться как одно из следующих:

  • YES_OPTION
  • NO_OPTION
  • CANCEL_OPTION
  • OK_OPTION
  • CLOSED_OPTION

Например,

final int option = JOptionPane.showConfirmDialog(mainFrame, panel, "Enter username and password", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);
if(option == JOptionPane.OK_OPTION){
    // OK was pressed. Now do stuff.
}
else if(option == JOptionPane.CANCEL_OPTION){
    // Cancel was pressed. Now do stuff.
}
2 голосов
/ 14 марта 2012

Javadoc на помощь:

Возвращает:

int, указывающий выбранную пользователем опцию

сравнитьрезультат с константами, определенными в JOptionPane (OK_OPTION, CANCEL_OPTION, CLOSED_OPTION и т. д.)

...