Java 假动作事件不';不要打开窗户。(密码对话框)
我使用JOptionPane confirm对话框输入密码,它有OK和Cancel按钮,当我使用while循环检测何时输入了正确的密码时,当用户按下Cancel或“X”时,我会触发fake actionEvent以使用此。dispose()处理窗口;但由于某种奇怪的原因,它无法工作,所以不管怎样,窗口都会打开 代码如下:Java 假动作事件不';不要打开窗户。(密码对话框),java,passwords,Java,Passwords,我使用JOptionPane confirm对话框输入密码,它有OK和Cancel按钮,当我使用while循环检测何时输入了正确的密码时,当用户按下Cancel或“X”时,我会触发fake actionEvent以使用此。dispose()处理窗口;但由于某种奇怪的原因,它无法工作,所以不管怎样,窗口都会打开 代码如下: while(identifier<1) { if(action == 0) { if(Arrays.equals(password.getPassword()
while(identifier<1) {
if(action == 0) {
if(Arrays.equals(password.getPassword(),pass)) {
break;
} else {
actionPerformed(new ActionEvent(2,-1,""));
break;
}
} else {
actionPerformed(new ActionEvent(2,-1,"");
break;
}
}
java.util.EventObject.getSource()返回一个对象…e.getSource()==2在我看来不正确…请尝试输出e.getSource()以查看它返回的内容。为什么这在while循环中?每种情况都有一个break语句。因为我正在使用它从确认对话框中检测OK/CANCEL,现在我通过仔细调试每一行对它进行了分类,我发现问题在于它试图在窗口实际初始化之前处理它。所以我把整个while语句移到了使窗口可见的行下面,现在它可以按照我的要求工作了。谢谢,对不起。这听起来很可怕。这听起来像是在事件调度线程之外操作UI组件,这是一个非常糟糕的主意
if(e.getSource()==2) {
this.dispose();
}