JOptionPane ДА/Нет Опции Подтверждение диалогового окна Проблема -Java

Я создал JOptionPane и он имеет только две кнопки YES_NO_OPTION.

После того, как JOptionPane.showConfirmDialog выскочит, я хочу нажать YES BUTTON, чтобы продолжить открытие JFileChooser, и если я нажал NO BUTTON, он должен отменить операцию.

Это выглядит довольно легко, но я не уверен, где моя ошибка.

Фрагмент кода:

if(textArea.getLineCount() >= 1){  //The condition to show the dialog if there is text inside the textArea

                int dialogButton = JOptionPane.YES_NO_OPTION;
                JOptionPane.showConfirmDialog (null, "Would You Like to Save your Previous Note First?","Warning",dialogButton);

                if(dialogButton == JOptionPane.YES_OPTION){ //The ISSUE is here

                    JFileChooser saveFile = new JFileChooser();
                    int saveOption = saveFile.showSaveDialog(frame);
                    if(saveOption == JFileChooser.APPROVE_OPTION){

                        try{
                            BufferedWriter fileWriter = new BufferedWriter(new FileWriter(saveFile.getSelectedFile().getPath()));
                            fileWriter.write(textArea.getText());
                            fileWriter.close();
                        }catch(Exception ex){

                        }
                    }

Ответ 1

Вам нужно посмотреть возвращаемое значение вызова на showConfirmDialog. То есть:.

int dialogResult = JOptionPane.showConfirmDialog (null, "Would You Like to Save your Previous Note First?","Warning",dialogButton);
if(dialogResult == JOptionPane.YES_OPTION){
  // Saving code here
}

Вы тестировали против dialogButton, который вы использовали, чтобы установить кнопки, которые должны отображаться в диалоговом окне, и эта переменная никогда не обновлялась - поэтому dialogButton никогда не было бы чем-то другим, кроме JOptionPane.YES_NO_OPTION.

В Javadoc для showConfirmDialog:

Возвращает: целое число, указывающее опцию, выбранную пользователем

Ответ 2

Попробуйте это,

int dialogButton = JOptionPane.YES_NO_OPTION;
int dialogResult = JOptionPane.showConfirmDialog(this, "Your Message", "Title on Box", dialogButton);
if(dialogResult == 0) {
  System.out.println("Yes option");
} else {
  System.out.println("No Option");
} 

Ответ 3

int opcion = JOptionPane.showConfirmDialog(null, "Realmente deseas salir?", "Aviso", JOptionPane.YES_NO_OPTION);

if (opcion == 0) { //The ISSUE is here
   System.out.print("si");
} else {
   System.out.print("no");
}