JOptionPane是或否窗口

Jos*_*ing 12 java swing return-value joptionpane

我正在尝试使用"是"或"否"按钮创建消息.然后会出现一个窗口,其中包含某条消息,该消息取决于用户是单击是还是否.

这是我的代码:

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

现在它会打印HELLO,无论你是否按下否.当用户选择否时,如何让它显示GOODBYE?

Mic*_*ney 66

"如果(真实)"将永远是真的,它永远不会成为其他人.如果您希望它正常工作,您必须这样做:

    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);
        }
Run Code Online (Sandbox Code Playgroud)

  • @JoshKing如果它适合你,那么你应该投票并接受这个答案. (18认同)

npi*_*nti 8

您总是在检查真实情况,因此您的信息将始终显示.

你应该用你的if (true)陈述代替if ( n == JOptionPane.YES_OPTION)

当其中一个showXxxDialog方法返回一个整数时,可能的值为:

YES_OPTION NO_OPTION CANCEL_OPTION OK_OPTION CLOSED_OPTION

这里开始


gpr*_*our 2

您正在写信if(true),因此它将始终显示“Hello”消息。

您应该根据n退回的价值做出决定。