JComboBox を使用してパネルを切り替えることができるカード レイアウトがあります。問題は、ウィンドウのサイズを変更しても、内部のパネルのサイズが変わらないことです。SpringLayout を使用するときはいつでも、境界線から x ピクセル離れた場所に留まるように何かを指示するだけで、それ自体のサイズが変更されます。CardLayoutでそれをどのように模倣できますか?
1 に答える
3
SpringLayout を使用するときはいつでも、境界線から x ピクセル離れた場所に留まるように指示することができます。
Borderに使用するパネルに を追加できますCardLayout。
JPanel cards = new JPanel(new CardLayout());
cards.setBorder( new EmptyBorder(10, 10, 10, 10) );
cards.add(card1, "card1");
cards.add(card2, "card2");
これで、各子パネルには、パネルの周囲に 10 ピクセルの境界線が表示されます。個々のカード パネルにボーダーを追加することもできます。詳細と実際の例については、ボーダーの使用方法に関する Swing チュートリアルのセクションを参照してください。
...そして、それ自体のサイズが変更されます。CardLayout でそれをどのように模倣できますか?CardLayout でそれをどのように模倣できますか?
CardLayout は他のパネルを保持するだけです。コンポーネントのサイズが変更されるように、カード パネルに追加する各パネルのレイアウトを設定する必要があります。
Swing チュートリアルにはHow to Use CardLayout、フレームのサイズが変更されるとコンポーネントの位置が変化することを示す動作デモのセクションもあります。コンポーネントのサイズを変更する場合は、CardLayout に追加するパネルごとに異なるレイアウト マネージャーを使用する必要があります。
于 2016-01-19T06:38:09.457 に答える