【问题标题】:Jbutton, JPanel, JFrame and IllegalArgumentException: adding a window to a containerJbutton、JPanel、JFrame 和 IllegalArgumentException:将窗口添加到容器
【发布时间】:2012-05-21 03:59:40
【问题描述】:

我有一个 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,仅此而已。

【问题讨论】:

    标签: swing jframe awt jpanel jbutton


    【解决方案1】:

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

    ...我拥有所有的动作侦听器,包括 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

    【讨论】:

    • 感谢您的回答,这是一个愚蠢的错误。我在 PlayGameJP 中扩展了 JFrame 而不是 JPanel,一切都被声明和定义得很好。
    猜你喜欢
    • 1970-01-01
    • 2013-05-28
    • 2011-05-06
    • 2013-05-04
    • 2013-07-11
    • 2013-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多