2014-01-26 4 views
1

вы можете выбрать другой вариант, когда я нажимаю ok и другой, когда я нажимаю отменить? Если у меня есть такой JOptionPane, если я могу это сделать, как я могу его реализовать?JOptionPane выбрать

JOptionPane.showConfirmDialog(frame,"Message",JOptionPane.OK_CANCEL_OPTION); 
+0

мутноватый, что вам спрашивают –

+1

Представьте, что вы получите эту JOptionPane с кнопками ok и отмените мой вопрос, если я нажму ok, вы можете сделать другое действие, и если я нажму отменить еще один – OiRc

+0

, если можно выбрать, как я могу его реализовать? – OiRc

ответ

4

Вы можете получить возвращаемое значение из JOptionPane.showConfirmDialog() как int и сравнить его с константами, доступных в JOptionPane, чтобы решить, что делать дальше.

int action = JOptionPane.showConfirmDialog(...); 
if(action == JOptionPane.CANCEL_OPTION){ // something } 

SSCCE:

import javax.swing.JOptionPane; 
import javax.swing.SwingUtilities; 

public class JExample { 
    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable(){ 
      @Override 
      public void run(){ 
       int action = JOptionPane.showConfirmDialog(null, 
         "Click Something, Moron!", 
         "Y U NO Click!", 
         JOptionPane.YES_NO_CANCEL_OPTION); 
       if(action == JOptionPane.YES_OPTION){ 
        System.out.println("YES!"); 
       }else if(action == JOptionPane.NO_OPTION){ 
        System.out.println("NO!"); 
       }else{ 
        System.out.println("CANCEL!"); 
       } 
      } 
     }); 
    } 
} 
+1

+1 За то, что вы не являетесь циничной старой, высушенной шелухой, выжженной бесстрастной отраслью так и так ...;) – MadProgrammer

+0

-1 за непонимание того, что вы только что сказали xD Engleesh nut my lenguage, yew know xD –

+1

Что я Я говорю, что вы отвечаете хорошо и полезно, моя малозначительна, поскольку не кажется, что OP сделал свою домашнюю работу в первую очередь;) – MadProgrammer

4

Вы читали JavaDocs

public static int showConfirmDialog(Component parentComponent, Object message) throws HeadlessException

Воспитывает диалог с параметрами Да, Нет и Отмена; с заголовком , выберите опцию.

Параметры:

parentComponent - определяет кадр, в котором диалог отображается; если нуль, или если parentComponent не имеет раму, по умолчанию Рама используется
message - объект для отображения

Возврат:

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

И если это не поможет вам, вы можете ознакомиться с учебниками, например How to Make Dialogs, например

+0

OMG вот вам снова украсть мои реплики. Я этого не допущу! НИКОГДА ! xD –

+1

@LittleChild Nah, вы отвечаете «лучше», я подозреваю, что OP понравится вам по моему ... как и должно быть;) – MadProgrammer

+0

Я добавил SSCCE, на всякий случай, когда вы решите сделать несколько ловких рук XD –

0

Вы также можете сделать это таким образом.

if(JOptionPane.showConfirmDialog(null, "Bla bla", "Bla bla", JOptionPane) == 0){ 
     System.out.println("YES"); 
//The value zero represents index of first option which will be the YES option 
    } 
else if(JOptionPane.showConfirmDialog(null, "Bla bla", "Bla bla", JOptionPane) == 1){ 
     System.out.println("NO"); 
//The value one represents index of second option which will be the NO option 
    } 

Вы можете удалить номер индекса и заменить формат у вас есть, так что он звучит так:

if(JOptionPane.showConfirmDialog(null, "Bla bla", "Bla bla", JOptionPane) == JOptionPane.YES_OPTION){ 
     System.out.println("YES"); 
option 
    } 
else if(JOptionPane.showConfirmDialog(null, "Bla bla", "Bla bla", JOptionPane) == JOptionPane.NO_OPTION){ 
     System.out.println("NO"); 
option 
    } 

Вы можете посетить эту ссылку YouTube для получения дополнительной помощи JOptionPane Tutorial