【问题标题】:JOptionPane YES NO OPTION [duplicate]JOptionPane 是 否 选项 [重复]
【发布时间】:2013-03-29 00:01:19
【问题描述】:
我有一个 JOptionPane 和是和否按钮。但是,无论您单击哪个按钮,它仍然存在。帮助!代码如下:
int dialogButton = JOptionPane.YES_NO_OPTION;
JOptionPane.showConfirmDialog (null, "Are you sure?","WARNING", dialogButton);
if(dialogButton == JOptionPane.YES_OPTION) {
System.exit(0);
if(dialogButton == JOptionPane.NO_OPTION) {
remove(dialogButton);
}
}
【问题讨论】:
标签:
java
swing
applet
awt
joptionpane
【解决方案1】:
您实际上应该从选项窗格中获取结果:
dialogButton = JOptionPane.showConfirmDialog (null, "Are you sure?","WARNING", dialogButton);
否则,它仍然设置为JOptionPane.YES_NO_OPTION。
更清洁的是:
if (JOptionPane.showConfirmDialog(null, "Are you sure?", "WARNING",
JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
// yes option
} else {
// no option
}
虽然,我不确定这行在发布的代码中应该做什么:remove(dialogButton);。
有关更多详细信息和示例,请查看How to Make Dialogs 教程。
【解决方案2】:
int dialogButton = JOptionPane.showConfirmDialog (null, "Are you sure?","WARNING",JOptionPane.YES_NO_OPTION);
if(dialogButton == JOptionPane.YES_OPTION) {
System.exit(0);}else {remove(dialogButton);}
这是正确的!
【讨论】:
-
-
欢迎来到 StackOverflow!您可以edit您的帖子并删除您的cmets。请继续并将您的评论添加到您的答案中。当你这样做时,你应该描述为什么你认为这是一个很好的解决方案,以及为什么 remove() 是错误的。
【解决方案3】:
把代码改成
int dialogButton = JOptionPane.showConfirmDialog (null, "Are you sure?","WARNING", dialogButton);
【解决方案4】:
if(dialogButton == JOptionPane.YES_OPTION) { // <<< start
System.exit(0);
if(dialogButton == JOptionPane.NO_OPTION) {
remove(dialogButton);
}
}// <<< stop
结果是因为外部if包含了另一个if语句,确保你没有在if语句旁边,它应该如下:-
if(dialogButton == JOptionPane.YES_OPTION) {
System.exit(0);
}else {
remove(dialogButton);
}
另外就是int dialogButton = JOptionPane.YES_NO_OPTION;这一行,改成
int dialogButton = JOptionPane.showConfirmDialog (null, "Are you sure?","WARNING", dialogButton);
【解决方案5】:
如果您希望 JOptionPane 消失,那么您可以:
optionPane.setVisible(false);
如果您不这样做,请查看不同的答案。
【解决方案6】:
if (JOptionPane.showConfirmDialog(this, "sfd", "sd", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
jProgressBar1.setValue(jProgressBar1.getValue() + 10);
jProgressBar1.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
}
else {
System.exit(0);
}