JOptionPane 是或否窗口

2022-09-03 08:21:15

我正在尝试创建带有“是”或“否”按钮的消息。然后,将出现一个窗口,其中包含一条消息,该消息取决于用户是单击“是”还是“否”。

这是我的代码:

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);
    }
}

现在,无论您是否按“是”或“否”,它都会打印HELLO。当用户选择“否”时,如何让它显示“再见”?


答案 1

“if(true)”将永远是真的,它永远不会进入其他领域。如果你想让它正常工作,你必须这样做:

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);
}

答案 2

您始终在检查真实情况,因此您的消息将始终显示。

您应该将语句替换为if (true)if ( n == JOptionPane.YES_OPTION)

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

YES_OPTION NO_OPTION CANCEL_OPTION OK_OPTION CLOSED_OPTION

从这里


推荐