コンポーネントをめくる


カードレイアウト

複数のコンポーネントを同時に管理しつつ
実際に表示するのは一つのコンポーネントという処理をしたい場合
カードをめくるようにコンポーネントを切り替える処理を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()などのメソッドを用いて、別のカードに変更します

レイアウトマネージャーの中では、特殊なレイアウトですが
汎用性はかけるものの、場合によっては非常に強力なレイアウトです



前のページへ戻る次のページへ