カードを切り替えるように、一つのカードだけを画面に表示し、前後のカードに移動しながら表示を切り替えていきます。
カードを入れ替えるには 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 件のコメント:
コメントを投稿