0

現在3つのクラスを持つプログラムを作成しています。これらには、他の 2 つの JPanel クラスに加えて、JFrame クラスが含まれます。ある JPanel クラスの JButton でその特定の JPanel を削除し、JFrame を (別のクラスから) 新しい JPanel に追加する方法を知っている人はいますか?

たとえば、JFrame クラスが frame と呼ばれ、2 つの JPanel クラスが panel1 と panel2 と呼ばれるとします。panel1 でボタンがクリックされた場合、フレームに panel1 を削除して panel2 を追加するようにどのように指示しますか?

4

1 に答える 1

1

それは、「削除」という言葉の意味によって異なります。

hidemode プロパティを使用して MigLayout を使用することをお勧めします。フォームの初期状態では、両方のパネルが JFrame に含まれますが、2 番目のパネルは非表示になります。

最初の JPanel のボタンを押すと、このパネルの可視性が false に設定され、2 番目のパネルの可視性が true に設定されます。

一方、フレームから最初のパネルを完全に削除する場合は、メソッド panel.setName(panelsName) を使用して名前を付けてから、JFrame のすべてのサブコンポーネントを取得してコレクションに入れます。

次に、このコレクションを繰り返し処理し、すべてのコンポーネントの名前を確認します。

component.getName().equals(panelsName) の場合は、frame.remove(component) メソッドを使用して削除します。その後、必要かどうかはわかりませんが、validate を呼び出してフレームを再描画する必要がある可能性があります。試してみてください;)

于 2013-02-23T20:25:52.717 に答える