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

当我运行它时,我想知道用户是否点击 x 以便我可以更改布尔值,roll 是 JTextArea,die 是图像图标,null 是我的布局。

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

我没有 JFrame,也不想要一个。

4

3 回答 3

3

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。

于 2013-03-06T18:26:09.557 回答
0

消息对话框用于向用户显示消息,因此使用“OK”关闭它或使用“X”关闭它之间不应存在语义差异。

如果您正在寻找输入,也许您想要一个确认对话框,它返回一个int.

于 2013-03-06T18:25:47.373 回答
0

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

于 2013-03-06T18:26:24.760 回答