如何处理 JOptionPane 中的取消按钮

新手上路,请多包涵

我创建了一个 JOptionPane 类型 showInputDialog 。打开它时,它会显示两个按钮: OKCancel 。当我按下“ 取消”按钮时,我想处理这个动作,但我不知道如何实现它。我怎么才能得到它?

原文由 Mazzy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 939
2 个回答

例如:

 int n = JOptionPane.showConfirmDialog(
                            frame, "Would you like green eggs and ham?",
                            "An Inane Question",
                            JOptionPane.YES_NO_OPTION);
if (n == JOptionPane.YES_OPTION) {

} else if (n == JOptionPane.NO_OPTION) {

} else {

}

或者 showOptionDialog

 Object[] options = {"Yes, please", "No way!"};
int n = JOptionPane.showOptionDialog(frame,
                "Would you like green eggs and ham?",
                "A Silly Question",
                JOptionPane.YES_NO_OPTION,
                JOptionPane.QUESTION_MESSAGE,
                null,
                options,
                options[0]);
if (n == JOptionPane.YES_OPTION) {

} else if (n == JOptionPane.NO_OPTION) {

} else {

}

有关详细信息,请参阅 如何制作对话框

编辑: showInputDialog

 String response = JOptionPane.showInputDialog(owner, "Input:", "");
if ((response != null) && (response.length() > 0)) {

}

原文由 tenorsax 发布,翻译遵循 CC BY-SA 3.0 许可协议

这是一个老问题,我是 Java 新手,所以可能有更好的解决方案,但我想知道同样的问题,也许它可以帮助其他人,我所做的是检查响应是否为空。

如果用户点击“取消”,响应将为空。如果他们在没有输入任何文本的情况下单击“确定”,则响应将是空字符串。

这对我有用:

 //inputdialog
    JOptionPane inpOption = new JOptionPane();

    //Shows a inputdialog
    String strDialogResponse = inpOption.showInputDialog("Enter a number: ");

    //if OK is pushed then (if not strDialogResponse is null)
    if (strDialogResponse != null){

        (Code to do something if the user push OK)

    }
    //If cancel button is pressed
    else{

        (Code to do something if the user push Cancel)

    }

原文由 Kjell 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题