カードを切り替えるように、一つのカードだけを画面に表示し、前後のカードに移動しながら表示を切り替えていきます。
カードを入れ替えるには next()、previous()、first()、last()、show() などのメソッドを用います。
package MyPackage1;
import java.awt.*;
import java.awt.event.*;
public class CardLayoutSample {
/*
* エントリポイント
*/
public static void main(String args[]){
new CardLayoutSample();
}
Frame frm;
Panel pnlMove;
Panel pnlCards;
CardLayout cl;
/*
* コンストラクタ
*/
public CardLayoutSample(){
//フレームを作成します。
frm = new Frame("CardLayoutSample");
//フレームサイズを指定します。
frm.setSize(300,300);
//無名クラスを使用してフレームを閉じます。
frm.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev){
System.exit(0);
}
});
//***移動ボタン用パネルを作成します***//
pnlMove = new Panel();
pnlMove.setLayout(new FlowLayout());
//--ボタンFirst
Button btn1 = new Button("First");
pnlMove.add(btn1);
btn1.addActionListener(new moveBtnActionAdapter());
btn1.setActionCommand("First");
//--ボタンPrevious
Button btn2 = new Button("Previous");
pnlMove.add(btn2);
btn2.addActionListener(new moveBtnActionAdapter());
btn2.setActionCommand("Previous");
//--ボタンNext
Button btn3 = new Button("Next");
pnlMove.add(btn3);
btn3.addActionListener(new moveBtnActionAdapter());
btn3.setActionCommand("Next");
//--ボタンLast
Button btn4 = new Button("Last");
pnlMove.add(btn4);
btn4.addActionListener(new moveBtnActionAdapter());
btn4.setActionCommand("Last");
//パネルをFrameに追加します。
frm.add(pnlMove,BorderLayout.NORTH );
//***カードパネルを作成します***//
pnlCards = new Panel();
this.cl = new CardLayout();
pnlCards.setLayout(cl);
//--カード1
Panel pnlCard1 = new Panel();
pnlCard1.add(new Label("Card1"));
pnlCards.add(pnlCard1,"Card1");
//--カード2
Panel pnlCard2 = new Panel();
pnlCard2.add(new Label("Card2"));
pnlCards.add(pnlCard2,"Card2");
//--カード3
Panel pnlCard3 = new Panel();
pnlCard3.add(new Label("Card3"));
pnlCards.add(pnlCard3,"Card3");
//--カード4
Panel pnlCard4 = new Panel();
pnlCard4.add(new Label("Card4"));
pnlCards.add(pnlCard4,"Card4");
//フレームにパネルを追加します。
frm.add(pnlCards,BorderLayout.CENTER);
//pnlCardsの「Card2」を表示します。
cl.show(pnlCards, "Card2");
//ウインドウを表示します。
frm.setVisible(true);
}
/*
* 移動ボタンActionListener
*/
public class moveBtnActionAdapter implements ActionListener {
@Override
public void actionPerformed(ActionEvent arg0) {
String cmd = arg0.getActionCommand();
if (cmd.equals("First")){
cl.first(frm);
}else if (cmd.equals("Previous")){
cl.previous(frm);
}else if (cmd.equals("Next")){
cl.next(frm);
}else if (cmd.equals("Last")){
cl.last(frm);
}
}
}
}
0 件のコメント:
コメントを投稿