Java 如果用户点击JOptionPane.showMessageDialog上角的x,则返回

Java 如果用户点击JOptionPane.showMessageDialog上角的x,则返回,java,joptionpane,Java,Joptionpane,当我运行这个程序时,我想知道用户是否点击了x,这样我就可以更改布尔值,roll是JTextArea,die是图像图标,null是我的布局 问题是showMessageDialog是一个void方法。所以我不能检查。谢谢 我没有JFrame,也不想要JFrame。消息对话框用于向用户显示消息,因此使用“OK”或“X”来取消消息应该没有语义上的区别 如果您正在寻找输入,可能需要一个确认对话框,它返回一个int 消息对话框用于向用户显示消息,因此使用“OK”或“X”来取消消息应该没有语义上的区别 如果

当我运行这个程序时,我想知道用户是否点击了x,这样我就可以更改布尔值,roll是JTextArea,die是图像图标,null是我的布局

问题是showMessageDialog是一个void方法。所以我不能检查。谢谢


我没有JFrame,也不想要JFrame。

消息对话框用于向用户显示消息,因此使用“OK”或“X”来取消消息应该没有语义上的区别


如果您正在寻找输入,可能需要一个确认对话框,它返回一个
int

消息对话框用于向用户显示消息,因此使用“OK”或“X”来取消消息应该没有语义上的区别


如果您正在寻找输入,可能需要一个确认对话框,它返回一个
int

ShowMessageDialog
不是为此而设计的。它用于显示消息,而不是获取用户反馈。您应该使用showConfirmDialog来实现您的目的,使用
OK\u CANCEL\u选项
,因为它确实是您想要的:单击X按钮就像使用CANCEL按钮一样

如果您确实不想使用“取消”按钮,则必须创建自己的JDialog。实际上,您可以使用JOptionPane.showOptionDialog:

JOptionPane.showMessageDialog(null, roll, "Dice Game", JOptionPane.INFORMATION_MESSAGE, die);

如果用户按OK,结果将为0;如果用户用X按钮关闭对话框,结果将为-1。
ShowMessageDialog
不是为此而设计的。它用于显示消息,而不是获取用户反馈。您应该使用showConfirmDialog来实现您的目的,使用
OK\u CANCEL\u选项
,因为它确实是您想要的:单击X按钮就像使用CANCEL按钮一样

如果您确实不想使用“取消”按钮,则必须创建自己的JDialog。实际上,您可以使用JOptionPane.showOptionDialog:

JOptionPane.showMessageDialog(null, roll, "Dice Game", JOptionPane.INFORMATION_MESSAGE, die);

如果用户按OK,结果将为0;如果用户用X按钮关闭对话框,结果将为-1。

您为什么需要它?消息对话框是一个信息对话框,不需要检测按下了哪个按钮(OK或X)。

为什么需要它?消息对话框是一个信息对话框,不需要检测按下了哪个按钮(OK或X)。

谢谢!有没有一种方法可以使用JOptionPane来进行可以有图像图标的输入?谢谢你的帮助。谢谢你,这很有效!有没有一种方法可以使用JOptionPane来进行可以有图像图标的输入?谢谢你的帮助。