コンポーネントをめくる
カードレイアウト
複数のコンポーネントを同時に管理しつつ
実際に表示するのは一つのコンポーネントという処理をしたい場合
カードをめくるようにコンポーネントを切り替える処理をJavaはサポートしています
このような特殊なレイアウトはjava.awt.CardLayoutクラスを用います
一度に表示できるカードは1つで、コンテナはカードスタックとして機能します
カードの順番は、コンテナ独自の内部コンポーネント オブジェクトの順番によって決まります
このクラスはLayoutManager2インターフェイスをインプリメントしています
コンストラクタは以下のものがあります
public CardLayout()
public CardLayout( int hgap, int vgap )
hgapには水平ギャップ、vgapには垂直ギャップを指定します
コンテナのカードをめくるのにはnext()メソッドを
先頭のカードはfirst()、最後尾のカードはlast()メソッドを呼び出します
public void first( Container parent )
public void next( Container parent )
public void last( Container parent )
parentには、レイアウト対象のコンテナを選択します
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
/* <applet code="App62.class" width="300"height="300">
</applet>
*/
public class App62 extends Applet implements ActionListener {
Button but[] = new Button[10];
CardLayout cl = new CardLayout(10 , 5);
public void init() {
for(int i = 0 ; i < 10 ; i++) {
add(but[i] = new Button("Kitty on your lap " + i));
but[i].addActionListener(this);
}
setLayout(cl);
}
public void actionPerformed(ActionEvent e) {
cl.next(this);
}
}
ボタンを押すと次のカードをめくります
カードレイアウトでは、コンテナに表示されるコンポーネントは1つまでです
first()やnext()などのメソッドを用いて、別のカードに変更します
レイアウトマネージャーの中では、特殊なレイアウトですが
汎用性はかけるものの、場合によっては非常に強力なレイアウトです