1

我有一个 JFrame 和多个 JPanel,它们都是从公共类 ProcessedFinal 扩展 JFrame 调用的,在这里,我有我的所有动作侦听器,包括 IAgreeJB。当我单击 iagreeJB 时,PlayGameJP 应该设置为可见。它起作用了,当我调用退出 JPanel (ExitJP) 时,现在当我调用新的 JPanel (PlayGameJP) 时,我收到此错误:

线程“AWT-EventQueue-0”java.lang.IllegalArgumentException 中的异常:向容器添加窗口

这对我来说毫无意义,因为我只是用一个 JPanel 代替另一个,这可能是什么原因?

   if ( e.getSource() == ComputeRegistrationJP.IAgreeJB )
           {    



remove(ComputeRegistrationJP);
setVisible( false );

add( ExitJP );
setVisible(true);



  // add( PlayGameJP );
  // setVisible( true );

 }

没关系的朋友,我在 PlayGameJP 中扩展了 JFrame 而不是 JPanel,仅此而已。

4

1 回答 1

0

我有一些问题要问你!:)

...我有我所有的动作监听器,包括 IAgreeJB...

这与问题有关吗?

...现在当我调用新的 JPanel (PlayGameJP) 时,我收到此错误:...

据我所知,没有像JPanel这样的构造函数JPanel (javax.swing.JPanel),假设PlayGameJP是 JPanel。所以在这种情况下,你必须得到的错误是:

no suitable constructor found for JPanel(javax.swing.JPanel)


说了这么多,你贴的代码和你写的问题有什么关系?


为了获得更好的帮助,我建议您改写问题并发布您最佳尝试的SSCCE。或相关代码。


对于您发布的错误消息,

...java.lang.IllegalArgumentException:向容器添加窗口...

当您尝试将顶级容器添加到另一个容器时,我已经看到了这一点,例如将 a 添加JDialogJFrame

于 2012-05-13T09:01:56.483 回答