Java API 分類導覽 - java.awt.CardLayout

CardLayout 類別 (class) 用來建立卡片式的版面編排物件。。



所謂卡片式的版面編排,意謂元件就在就是一張一張的卡片版面上,使用不同元件就得更換卡片。


修飾子
public class CardLayout


父類別
java.lang.Object


實作介面
LayoutManager
LayoutManager2
Serializable


建構子
CardLayout()
CardLayout(int hgap, int vgap)


常用方法
名稱敘述
first顯示第一張卡片
last顯示最後一張卡片
next顯示下一張卡片
previous顯示上一張卡片
show顯示指定卡片


舉例如下
import java.awt.*;
import java.awt.event.*;

public class CardLayoutDemo implements ActionListener {
    Frame frame;
    Panel p1, p2;
    CardLayout card;
    Button next, previous, first, last, show;    
    
    public static void main(String[] args) {
        new CardLayoutDemo();
    }
    
    public CardLayoutDemo() {
        Frame frame = new Frame("AWTDemo");
        frame.addWindowListener(new AdapterDemo());
        frame.setSize(400, 200);
        
        p1 = new Panel();
        card = new CardLayout();
        p1.setLayout(card);
        p1.add(new Label("one"), "one");
        p1.add(new Label("two"), "two");
        p1.add(new Label("three"), "three");
        p1.add(new Label("four"), "four");
        p1.add(new Label("five"), "five");
        
        p2 = new Panel();
        p2.setLayout(new FlowLayout());
        next = new Button("NEXT");
        next.setActionCommand("next");
        next.addActionListener(this);
        previous = new Button("PREVIOUS");
        previous.setActionCommand("previous");
        previous.addActionListener(this);
        first = new Button("FIRST");
        first.setActionCommand("first");
        first.addActionListener(this);
        last = new Button("LAST");
        last.setActionCommand("last");
        last.addActionListener(this);
        show = new Button("SHOW");
        show.setActionCommand("show");
        show.addActionListener(this);
        p2.add(next);
        p2.add(previous);
        p2.add(first);
        p2.add(last);
        p2.add(show);
        
        frame.add(p1, BorderLayout.CENTER);
        frame.add(p2, BorderLayout.SOUTH);
        frame.setVisible(true);
    }
    
    public void actionPerformed(ActionEvent e) {
        String cmd = e.getActionCommand();
        if (cmd == "next") {
            card.next(p1);
        }
        if (cmd == "previous") {
            card.previous(p1);
        }
        if (cmd == "first") {
            card.first(p1);
        }
        if (cmd == "last") {
            card.last(p1);
        }
        if (cmd == "show") {
            card.show(p1, "three");
        }
    }
}

class AdapterDemo extends WindowAdapter {
    public void windowClosing(WindowEvent e) {
        System.exit(0);
    }
}

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:CardLayoutDemo.java
    功能:示範 Java 程式 
    作者:張凱慶
    時間:西元 2012 年 3 月 */


此例將 Panel 型態的 p1 設定成 CardLayout ,然後呼叫 add() 方法依序加入五個卡片,每張卡片顯示英文數字的文字標籤
p1 = new Panel();
card = new CardLayout();
p1.setLayout(card);
p1.add(new Label("one"), "one");
p1.add(new Label("two"), "two");
p1.add(new Label("three"), "three");
p1.add(new Label("four"), "four");
p1.add(new Label("five"), "five");



接著在另一個 Panel 型態的 p2 加入五個按鈕,點擊 NEXT 呼叫 CardLayout 的 next() 跳到下一張卡片, PREVIOUS 呼叫 previous() 回到上一張卡片, FIRST 呼叫 first() 到第一張卡片, LAST 呼叫 last() 到最後一張卡片, SHOW 呼叫 show() 顯示第三張卡片
public void actionPerformed(ActionEvent e) {
    String cmd = e.getActionCommand();
    if (cmd == "next") {
        card.next(p1);
    }
    if (cmd == "previous") {
        card.previous(p1);
    }
    if (cmd == "first") {
        card.first(p1);
    }
    if (cmd == "last") {
        card.last(p1);
    }
    if (cmd == "show") {
        card.show(p1, "three");
    }
}


編譯後執行,結果如下



中英文術語對照
類別class
建構子constructor
方法method


您可以繼續參考
排版管理員


相關目錄
Java API 分類導覽
Java 教材
首頁


參考資料
http://docs.oracle.com/javase/6/docs/api/java/awt/CardLayout.html

沒有留言: