ユーザインタフェース 4章 レイアウト・マネージャー
- 4.1. レイアウト・マネージャー
- 4.2. java.awt.FlowLayout
- 4.3. java.awt.CardLayout
4.3. java.awt.CardLayout
「java.awt.CardLayout」は、同じ領域に複数のコンポーネントを重ねて置き、かわるがわる表示するために使用するレイアウト・マネージャーです。トランプの山をイメージすれば良いでしょうか。複数のカードがあり、それぞれのカードにコンポーネントが配置されている。最初は一番上のカードのコンポーネントが表示されているが、それを次のものや任意のものに切り替えることができるというイメージです。
「CardLayout」を使用するには、「FlowLayout」と同じく以下のように設定します。
CardLayout layout=new CardLayout(); getContentPane().setLayout(layout);
コンポーネントの追加は以下のようにします。
getContentPane().add(button,"first");
2番目の引数の値は任意で、これはカードに付ける名前を意味します。またコンポーネントは最初に追加したものが一番上のカードに配置されるようになっています。
例えば一番下のカードに切り替える場合には、以下のようにします。
layout.last(getContentPane());
(実習課題4)
以下のプログラムを作成しなさい。
- ウィンドウに含まれるコンポーネントは3つのボタン(JButton)。ラベルの背景、テキストは任意。
- レイアウト・マネージャーは「CardLayout」。3つのボタンは別々のカードに配置する事。
- ウィンドウにはメニューがあり、メニューの構成とそれを選択した場合の動作は以下のとおり。
- first : 先頭のカードを表示する
- next : 現在表示している次のカードを表示する
- previous : 現在表示している1つ前のカードを表示する
- last : 最後のカードを表示する
- メニューの配置については任意。