Java Can';t设置未装饰,即使框架设置可见(错误)

Java Can';t设置未装饰,即使框架设置可见(错误),java,swing,jframe,Java,Swing,Jframe,在我的应用程序中,从一个按钮看,我显示一个jframe(未装饰、最大化、可见和始终在顶部),然后在一段时间后,当我完成它的工作时,我将它设置为不可见,从该框架上的一个按钮关闭。。。但在那之后,当我再次单击按钮显示jframe时,它会在线程“AWT-EventQueue-0”java.AWT.IllegalComponentStateException中显示异常:该帧是可显示的。甚至我已经将该帧设置为不可见 这么多信息是足够的还是需要更多 更新: 我的主文件是FormTTS.java我还有一个名为

在我的应用程序中,从一个按钮看,我显示一个jframe(未装饰、最大化、可见和始终在顶部),然后在一段时间后,当我完成它的工作时,我将它设置为不可见,从该框架上的一个按钮关闭。。。但在那之后,当我再次单击按钮显示jframe时,它会在线程“AWT-EventQueue-0”java.AWT.IllegalComponentStateException中显示
异常:该帧是可显示的。
甚至我已经将该帧设置为不可见

这么多信息是足够的还是需要更多

更新: 我的主文件是
FormTTS.java
我还有一个名为
FTDirect.java
的文件,它有3个框架:
See
Blank
main
。在主框架中,我有一个按钮See,它使See框架可见,在我工作后的See框架中,我使自己从按钮本身不可见,然后我返回主框架。现在,如果我再次单击See按钮,我会得到错误

代码: 请参见FTDirect.java中主框架中的按钮

See.setUndecorated(true);
See.setVisible(true);
See.setAlwaysOnTop(rootPaneCheckingEnabled);
See.setExtendedState(MAXIMIZED_BOTH);
......
this.setVisible(false); //That's it
关闭FTDirect.java中的See框架中的按钮

See.setUndecorated(true);
See.setVisible(true);
See.setAlwaysOnTop(rootPaneCheckingEnabled);
See.setExtendedState(MAXIMIZED_BOTH);
......
this.setVisible(false); //That's it
最小示例程序 (伪码)

文件:FormTTS.java

FTdirect directform = new FTdirect();
directform.setVisible(true);
directform.setExtendedState(MAXIMIZED_BOTH);
//Main frame
private void MainSeeButtonActionPerformed(java.awt.event.ActionEvent evt) {                                              
    See.setUndecorated(true);
    See.setVisible(true);
    See.setAlwaysOnTop(rootPaneCheckingEnabled);
    See.setExtendedState(MAXIMIZED_BOTH);
}
//See frame - Close Button
private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    See.setVisible(false);
}
文件:FTDirect.java

FTdirect directform = new FTdirect();
directform.setVisible(true);
directform.setExtendedState(MAXIMIZED_BOTH);
//Main frame
private void MainSeeButtonActionPerformed(java.awt.event.ActionEvent evt) {                                              
    See.setUndecorated(true);
    See.setVisible(true);
    See.setAlwaysOnTop(rootPaneCheckingEnabled);
    See.setExtendedState(MAXIMIZED_BOTH);
}
//See frame - Close Button
private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    See.setVisible(false);
}
如此结束:我单击“查看”按钮,我在那里得到了“查看”框架,我单击“关闭”按钮,它将不可见,现在如果我再次单击“查看”按钮,它将给出一个错误

修改“查看”方法的代码,使用该方法指示此框架是否未装饰。默认情况下,所有框架最初都会进行装饰

if (!See.isUndecorated()) {
    See.setUndecorated(true);
}
if(!See.isVisible()){
    See.setVisible(true);
}
See.setAlwaysOnTop(rootPaneCheckingEnabled);
See.setExtendedState(MAXIMIZED_BOTH);
修改用于指示此框架是否未装饰的See方法的代码。默认情况下,所有框架最初都会进行装饰

if (!See.isUndecorated()) {
    See.setUndecorated(true);
}
if(!See.isVisible()){
    See.setVisible(true);
}
See.setAlwaysOnTop(rootPaneCheckingEnabled);
See.setExtendedState(MAXIMIZED_BOTH);
修改用于指示此框架是否未装饰的See方法的代码。默认情况下,所有框架最初都会进行装饰

if (!See.isUndecorated()) {
    See.setUndecorated(true);
}
if(!See.isVisible()){
    See.setVisible(true);
}
See.setAlwaysOnTop(rootPaneCheckingEnabled);
See.setExtendedState(MAXIMIZED_BOTH);
修改用于指示此框架是否未装饰的See方法的代码。默认情况下,所有框架最初都会进行装饰

if (!See.isUndecorated()) {
    See.setUndecorated(true);
}
if(!See.isVisible()){
    See.setVisible(true);
}
See.setAlwaysOnTop(rootPaneCheckingEnabled);
See.setExtendedState(MAXIMIZED_BOTH);


我认为你发布的文本不足以让我们充分理解你的问题并回答它。如果你没有得到一个体面的答案很快,考虑创建和张贴。我们不能运行或编译张贴的代码。我们无法测试它是否存在问题,也无法亲身体验这些问题。再次,请考虑创建和发布一个.OK,我会尝试这样做…@ HoviCRAFTFulfFeels:现在怎么样?你已经通过了我给你的链接吗?这是第三次:。请阅读它,因为它将对您和我们都有很大帮助。我认为您发布的文本不足以让我们理解您的问题并回答它。如果你没有得到一个体面的答案很快,考虑创建和张贴。我们不能运行或编译张贴的代码。我们无法测试它是否存在问题,也无法亲身体验这些问题。再次,请考虑创建和发布一个.OK,我会尝试这样做…@ HoviCRAFTFulfFeels:现在怎么样?你已经通过了我给你的链接吗?这是第三次:。请阅读它,因为它将对您和我们都有很大帮助。我认为您发布的文本不足以让我们理解您的问题并回答它。如果你没有得到一个体面的答案很快,考虑创建和张贴。我们不能运行或编译张贴的代码。我们无法测试它是否存在问题,也无法亲身体验这些问题。再次,请考虑创建和发布一个.OK,我会尝试这样做…@ HoviCRAFTFulfFeels:现在怎么样?你已经通过了我给你的链接吗?这是第三次:。请阅读它,因为它将对您和我们都有很大帮助。我认为您发布的文本不足以让我们理解您的问题并回答它。如果你没有得到一个体面的答案很快,考虑创建和张贴。我们不能运行或编译张贴的代码。我们无法测试它是否存在问题,也无法亲身体验这些问题。再次,请考虑创建和发布一个.OK,我会尝试这样做…@ HoviCRAFTFulfFeels:现在怎么样?你已经通过了我给你的链接吗?这是第三次:。请阅读它,因为它将大大有助于你和我们。