2013-04-06 3 views
3

У меня есть JOptionPane и да и никаких кнопок. Но, какая бы кнопка ни нажата, она все еще существует. ПОМОГИТЕ! Heres код:JOptionPane ДА НЕТ ВАРИАНТА

int dialogButton = JOptionPane.YES_NO_OPTION; 
      JOptionPane.showConfirmDialog (null, "Are you sure?","WARNING", dialogButton); 
      if(dialogButton == JOptionPane.YES_OPTION) { 
       System.exit(0); 
      if(dialogButton == JOptionPane.NO_OPTION) { 
        remove(dialogButton); 
       } 
       } 
+0

для лучшей помощи скорее опубликовать [SSCCE] (http://sscce.org/), короткий, готовые к выполнению, компилируемые, в противном случае ответы на ваш вопрос очень расплывчатый не могла ...., быть уверенными, что прежде чем читать [Учебник Oracle, как сделать диалоги] (http://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html) – mKorbel

ответ

14

Вы должны фактически взять результат в панели опций:

dialogButton = JOptionPane.showConfirmDialog (null, "Are you sure?","WARNING", dialogButton); 

В противном случае, он остается равным JOptionPane.YES_NO_OPTION.

уборщик будет:

if (JOptionPane.showConfirmDialog(null, "Are you sure?", "WARNING", 
     JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) { 
    // yes option 
} else { 
    // no option 
} 

Хотя, я не уверен, что эта линия, как ожидается, сделать в размещенном коде: remove(dialogButton);.

Для получения дополнительной информации и примеров ознакомьтесь с руководством How to Make Dialogs.

1

Изменить код

int dialogButton = JOptionPane.showConfirmDialog (null, "Are you sure?","WARNING", dialogButton);

+1

Это сработало спасибо –

0
if(dialogButton == JOptionPane.YES_OPTION) { // <<< start 
    System.exit(0); 
     if(dialogButton == JOptionPane.NO_OPTION) { 
      remove(dialogButton); 
     } 
}// <<< stop 

Результат обусловлен тем, что внешняя if покрывающей другой if заявление, убедитесь, что вы не следующий за if заявление, оно должно быть следующим: -

if(dialogButton == JOptionPane.YES_OPTION) { 
    System.exit(0); 
}else { 
    remove(dialogButton); 
} 

Другое дело, эта линия int dialogButton = JOptionPane.YES_NO_OPTION;, ч Ange его

int dialogButton = JOptionPane.showConfirmDialog (null, "Are you sure?","WARNING", dialogButton); 
+0

, что не проблема. и еще, а если не работает для меня –

0

Если вы хотите, чтобы JOptionPane пропадет, то вы можете:

optionPane.setVisible(false); 

Если нет, то посмотрите на другой ответ.

2
int dialogButton = JOptionPane.showConfirmDialog (null, "Are you sure?","WARNING",JOptionPane.YES_NO_OPTION); 

if(dialogButton == JOptionPane.YES_OPTION) { 
System.exit(0);}else {remove(dialogButton);} 

это правильный!

+0

, но удалите (dialogButton); неверно – gus

+1

Добро пожаловать в StackOverflow! Вы можете редактировать свои сообщения и удалять свои комментарии. Пожалуйста, продолжайте и добавьте свой комментарий к своему ответу. Пока вы на нем, вам следует описать, почему вы думаете, что это такое хорошее решение и почему 'remove()' неверно. –

-1
if (JOptionPane.showConfirmDialog(this, "sfd", "sd", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) { 
    jProgressBar1.setValue(jProgressBar1.getValue() + 10); 
    jProgressBar1.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); 
} 
else { 
    System.exit(0); 
} 
Смежные вопросы