it-swarm.com.de

JOptionPane Fenster Ja oder Nein

Ich versuche, eine Nachricht mit der Schaltfläche Ja oder Nein zu erstellen. Dann erscheint ein Fenster mit einer bestimmten Meldung, die davon abhängt, ob der Benutzer auf Ja oder Nein geklickt hat. 

Hier ist mein Code:

public class test{
    public static void main(String[] args){

        //default icon, custom title
        int n = JOptionPane.showConfirmDialog(
            null,
            "Would you like green eggs and ham?",
            "An Inane Question",
            JOptionPane.YES_NO_OPTION);

        if(true){
            JOptionPane.showMessageDialog(null, "HELLO");
        }
        else {
            JOptionPane.showMessageDialog(null, "GOODBYE");
        }

        System.exit(0);
    }
}

Im Moment wird HELLO gedruckt, unabhängig davon, ob Sie Ja oder Nein drücken. Wie kann ich GOODBYE anzeigen, wenn der Benutzer Nein wählt?

11
Josh King

"if (true)" ist immer wahr und wird es niemals zum Anderen schaffen. Wenn Sie möchten, dass es richtig funktioniert, müssen Sie Folgendes tun:

    int reply = JOptionPane.showConfirmDialog(null, message, title, JOptionPane.YES_NO_OPTION);
        if (reply == JOptionPane.YES_OPTION) {
          JOptionPane.showMessageDialog(null, "HELLO");
        }
        else {
           JOptionPane.showMessageDialog(null, "GOODBYE");
           System.exit(0);
        }
64
Michaeldcooney

Sie prüfen immer, ob ein Zustand vorliegt, und Ihre Nachricht wird immer angezeigt.

Sie sollten Ihre if (true)-Anweisung durch if ( n == JOptionPane.YES_OPTION) ersetzen.

Wenn eine der showXxxDialog-Methoden eine Ganzzahl zurückgibt, wird das mögliche Werte sind:

YES_OPTION NO_OPTION CANCEL_OPTION OK_OPTION CLOSED_OPTION

Ab hier

8
npinti

Sie können es damit beheben:

if(n == JOptionPane.YES_OPTION)
{
    JOptionPane.showMessageDialog(null, "HELLO");
}
else
{
    JOptionPane.showMessageDialog(null, "GOODBYE");
}
4
Stefan Koenen

Sie können dies um einiges einfacher machen:

int test = JOptionPane.showConfirmDialog(null, "Would you like green eggs and ham?", "An insane question!");
switch(test) {
    case 0: JOptionPane.showMessageDialog(null, "HELLO!"); //Yes option
    case 1: JOptionPane.showMessageDialog(null, "GOODBYE!"); //No option
    case 2: JOptionPane.showMessageDialog(null, "GOODBYE!"); //Cancel option
}
3
user4748521

Sie schreiben if(true), so dass immer eine "Hallo" -Meldung angezeigt wird.

Sie sollten eine Entscheidung auf der Grundlage des zurückgegebenen Werts von n treffen.

2
gprathour

Code für Ja- und Nein-Nachricht

      int n = JOptionPane.showConfirmDialog(  
                null,
                "sample question?!" ,
                "",
                JOptionPane.YES_NO_OPTION);

      if(n == JOptionPane.YES_OPTION)
      {
          JOptionPane.showMessageDialog(null, "Opening...");
      }
      else
      {
          JOptionPane.showMessageDialog(null, "Goodbye");
          System.exit(0);
2

Zum besseren Verständnis, wie es funktioniert! 

int n = JOptionPane.showConfirmDialog(null, "Yes No Cancel", "YesNoCancel", JOptionPane.YES_NO_CANCEL_OPTION);
    if(n == 0)
        {
        JOptionPane.showConfirmDialog(null, "You pressed YES\n"+"Pressed value is = "+n);
        }
    else if(n == 1)
        {
        JOptionPane.showConfirmDialog(null, "You pressed NO\n"+"Pressed value is = "+n);
        }
    else if (n == 2)
        {
        JOptionPane.showConfirmDialog(null, "You pressed CANCEL\n"+"Pressed value is = "+n);
        }
    else if (n == -1)
        {
        JOptionPane.showConfirmDialog(null, "You pressed X\n"+"Pressed value is = "+n);
        }

OR

int n = JOptionPane.showConfirmDialog(null, "Yes No Cancel", "YesNoCancel", JOptionPane.YES_NO_CANCEL_OPTION);
    switch (n) {
        case 0:
            JOptionPane.showConfirmDialog(null, "You pressed YES\n"+"Pressed value is = "+n);
            break;
        case 1:
            JOptionPane.showConfirmDialog(null, "You pressed NO\n"+"Pressed value is = "+n);
            break;
        case 2:
            JOptionPane.showConfirmDialog(null, "You pressed CANCEL\n"+"Pressed value is = "+n);
            break;
        case -1:
            JOptionPane.showConfirmDialog(null, "You pressed X\n"+"Pressed value is = "+n);
            break;
        default:
            break;
    }
0

Etwas in dieser Richtung ....

   //default icon, custom title
int n = JOptionPane.showConfirmDialog(null,"Would you like green eggs and ham?","An Inane Question",JOptionPane.YES_NO_OPTION);

String result = "?";
switch (n) {
case JOptionPane.YES_OPTION:
  result = "YES";
  break;
case JOptionPane.NO_OPTION:
  result = "NO";
  break;
default:
  ;
}
System.out.println("Replace? " + result);

vielleicht möchten Sie auch DialogDemo anschauen. 

0
Narayan