我有一个JFrame和多个JPanel,都是从公共类中调用的,ProcessedFinal扩展了JFrame,在这里,我有我的所有动作监听器,包括IAgreeJB。当我点击iagreeJB时,PlayGameJP应该设置为可见。它工作,当我调用退出JPanel(ExitJP),现在当我调用一个新的JPanel(PlayGameJP)时,我收到此错误:
线程中的异常" AWT-EventQueue-0" java.lang.IllegalArgumentException:向容器添加窗口
对我来说没有任何意义,因为我只是用一个JPanel代替另一个JPanel,这可能是什么原因?
if ( e.getSource() == ComputeRegistrationJP.IAgreeJB )
{
remove(ComputeRegistrationJP);
setVisible( false );
add( ExitJP );
setVisible(true);
// add( PlayGameJP );
// setVisible( true );
}
没关系好友,我在我的PlayGameJP中扩展JFrame而不是JPanel,这就是全部。
答案 0 :(得分:0)
我有一些问题要问你! :)
...我有我的所有动作听众,包括IAgreeJB ......
这与问题有关吗?
...现在,当我调用新的JPanel(PlayGameJP)时,我收到此错误:...
据我所知,JPanel没有JPanel (javax.swing.JPanel)
的构造函数,假设PlayGameJP
是JPanel。因此,在这种情况下,您必须得到的错误是:
no suitable constructor found for JPanel(javax.swing.JPanel)
说到这些,你发布的代码与你写的问题有什么关系?
为了更快地提供帮助,我建议您重新提出问题并发布SSCCE您最佳的尝试。或相关的代码。
对于您发布的错误消息,
... java.lang.IllegalArgumentException:向容器添加窗口......
当您尝试将顶级容器添加到另一个容器时,我已经看到了这一点,例如将JDialog
添加到JFrame