JOptionPane.showMessageDialog(null, roll, "Dice Game", JOptionPane.INFORMATION_MESSAGE, die);
当我运行它时,我想知道用户是否点击 x 以便我可以更改布尔值,roll 是 JTextArea,die 是图像图标,null 是我的布局。
问题是 showMessageDialog 是一个 void 方法。所以我无法检查。谢谢。
我没有 JFrame,也不想要一个。
JOptionPane.showMessageDialog(null, roll, "Dice Game", JOptionPane.INFORMATION_MESSAGE, die);
当我运行它时,我想知道用户是否点击 x 以便我可以更改布尔值,roll 是 JTextArea,die 是图像图标,null 是我的布局。
问题是 showMessageDialog 是一个 void 方法。所以我无法检查。谢谢。
我没有 JFrame,也不想要一个。
ShowMessageDialog
不是为此而设计的。它用于显示消息,而不是获取用户反馈。您应该使用 showConfirmDialog 来达到您的目的,OK_CANCEL_OPTION
因为它确实是您想要的:单击 X 按钮就像使用取消按钮一样。
如果您真的不想要取消按钮,那么您必须创建自己的 JDialog,实际上您可以使用 JOptionPane.showOptionDialog:
int result = JOptionPane.showOptionDialog(null, roll, "Dice Game", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, die, new Object[] { "OK"}, null);
result
如果用户按下 OK,则为 0,如果用户使用 X 按钮关闭对话框,则为 -1。
消息对话框用于向用户显示消息,因此使用“OK”关闭它或使用“X”关闭它之间不应存在语义差异。
如果您正在寻找输入,也许您想要一个确认对话框,它返回一个int
.
为什么你需要那个?消息对话框是一个信息对话框,不需要检测按下了哪个按钮(确定或 X)。