gpt4 book ai didi

java - ShowOptionDialog 取消选项不起作用

转载 作者:行者123 更新时间:2023-11-29 04:55:18 25 4
gpt4 key购买 nike

我正在尝试为我的程序创建一个 GUI。这个特定的 GUI 使用带有 showOptionDialog 的 JOptionsPane。我在 OptionsPane 中添加了一个面板,它有一些 Action 监听器以及两个列表和一些其他东西,但这对于这个问题来说真的无关紧要。

很简单,我希望我的 showOptionDialog 在用户单击“取消”按钮时执行某些操作。 (它基本上会结束程序,但必须以某种方式完成)。现在,当用户单击“取消”时,程序继续运行,就好像用户刚刚结束该对话框但未采取任何操作一样。如果他们单击取消,我将尝试更改一个变量,这将阻止程序的其余部分运行。我用 System.out.println 进行了测试,看看我的值是否真的被改变了,我发现这个步骤根本没有发生。所以我想根据这段代码知道我做错了什么。当用户单击取消时,我需要做什么才能使代码正确运行?

我没有更多的代码可以显示,因为我的程序非常大,我不可能隔离这种情况。

在此先感谢您的帮助!

public static void displayGUI(){

int result = JOptionPane.showOptionDialog(null, getPanel(),"JOptionPane Example : ", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE, null, new String[]{"Confirm","Create Return"}, "default");

if(result == JOptionPane.CANCEL_OPTION){
initialScreenDecisions="NONE";
MainWriter.finishedCounter=true;
System.out.println(MainWriter.finishedCounter);
while(MainWriter.entryDetails.size()>0){
MainWriter.entryDetails.remove(0);
}
while(output.size()>0){
output.remove(0);
}
}
}

*这部分代码不会被执行,即使用户选择了取消:

if(result == JOptionPane.CANCEL_OPTION){
initialScreenDecisions="NONE";
MainWriter.finishedCounter=true;
System.out.println(MainWriter.finishedCounter);
while(MainWriter.entryDetails.size()>0){
MainWriter.entryDetails.remove(0);
}
while(output.size()>0){
output.remove(0);
}
}

最佳答案

来自你的问题:
*这部分代码不会被执行,即使用户选择了取消:

尝试从 JOptionPane.showOptionDialog() 返回的 integer 值。如果选择 OK,则返回 0;如果选择 Cancel,则返回 1

按如下方式修改您的代码:

if(result == 1){
initialScreenDecisions="NONE";
MainWriter.finishedCounter=true;
System.out.println(MainWriter.finishedCounter);
while(MainWriter.entryDetails.size()>0){
MainWriter.entryDetails.remove(0);
}
while(output.size()>0){
output.remove(0);
}
}

如果这对您没有帮助,请告诉我!!!

关于java - ShowOptionDialog 取消选项不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34002663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com