質問: SWINGを使いGUIを作成している所なのですが、上手くいかないところ があるので質問します。 パネルAをパネルBに加えることはできるのですが、同じ(もしくは異 なるパネル)パネルにパネルAを複数回加えることが出来ません。 エラーは発生しませんが、一番最後に加えた部分だけしか表示されま せん。 そもそも一つのパネル(パネルに限らずですが)は一つの箇所と決 まっているのでしょうか? しようとしていることは、パネルAを変更すれば、複数の箇所に加え たパネルAもすべて変更されるようにしたいです。 同じ中身でも、必要な数だけ用意して、全ていちいち変更する必要が あるのでしょうか? よろしくお願いします。
回答: パネルを「加える」は、最終的に java.awt.Container.addImpl が呼び出さ れます。その説明に「コンポーネントがこのコンテナの上位にはなく、null でない親がある場合は、このコンテナに追加される前に現在の親から削除さ れます」とあります。 特定のパネルを、あちこちで使い回したい場合は、表示する直前に add して ください。同時に同じパネルを複数表示することは出来ません。 http://java.sun.com/javase/ja/6/docs/ja/api/java/awt/Container.html #addImpl(java.awt.Component,%20java.lang.Object,%20int)