1

JFrame と複数の JPanels があり、すべてパブリック クラス 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 で JPanel の代わりに JFrame を拡張していました。

4

1 に答える 1

0

いくつか質問があります!:)

... IAgreeJB を含むすべてのアクション リスナーがあります...

これは質問と関係がありますか?

...新しい JPanel (PlayGameJP) を呼び出すと、このエラーが発生します:...

私の知る限り、JPanel のような JPanel のコンストラクターはありませ。したがって、この場合、取得する必要があるエラーは次のとおりです。JPanel (javax.swing.JPanel)PlayGameJP

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


これらのことを言われて、あなたが投稿したコードはあなたが書いた質問と何の関係がありますか?


より迅速なヘルプのために、質問を言い換えて、最善の試みのSSCCEを投稿することをお勧めします。または関連するコード。


あなたが投稿したエラーメッセージについては、

...java.lang.IllegalArgumentException: コンテナにウィンドウを追加しています...

トップレベルのコンテナを別のコンテナに追加しようとすると、これを見たことがありますJDialogJFrame

于 2012-05-13T09:01:56.483 に答える