Joptionpane Да / нет параметры подтвердить диалоговое окно проблема
Я создал 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) {
}
}
4 ответа:
вам нужно посмотреть на возвращаемое значение вызова
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
, который вы использовали для установки кнопок, которые должны отображаться в диалоговом окне, и эта переменная никогда не обновлялась-sodialogButton
никогда бы не было ничего, кромеJOptionPane.YES_NO_OPTION
.в Javadoc для
showConfirmDialog
:возвращает: целое число, указывающее параметр, выбранный пользователем
попробуйте это,
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"); }