所謂卡片式的版面編排,意謂元件就在就是一張一張的卡片版面上,使用不同元件就得更換卡片。
修飾子
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
沒有留言:
張貼留言