Java學習筆記之卡片式佈局CardLayout
阿新 • • 發佈:2019-01-25
CardLayout(構造)方法:
方法 | 說明 |
public CardLayout() | 建立一個間距大小為0的新卡片佈局 |
public CardLayout(int hgap,int vgap) | 建立一個具有指定水平間距和垂直間距的新卡片佈局。水平間距置於左右邊緣。垂直間距置於上下邊緣 |
public void first(Container parent) | 翻轉到容器的第一張卡片 |
public void last(Contain parent) | 翻轉到容器的最後一張卡片 |
public void next(Contain parent) | 翻轉到指定容器的下一張卡片 |
public void previous(Contain parent) |
翻轉到指定容器的前一張卡片 |
public void show(Contain parent,String name) | 翻轉到使用addLayoutComponent新增到此佈局的具有指定name的元件 |
示例:
package com.lc.awt; import java.awt.BorderLayout; import java.awt.CardLayout; import java.awt.Color; import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class CardLayoutDemo extends JFrame { private JPanel pane = null; private JPanel p = null; private CardLayout card = null; private JButton button_1=null; private JButton button_2=null; private JButton b_1=null,b_2=null,b_3=null; private JPanel p_1=null,p_2=null,p_3=null; public CardLayoutDemo(){ card = new CardLayout(5,5); pane = new JPanel(card); p = new JPanel(); button_1 = new JButton("< 上一步"); button_2 = new JButton("下一步 >"); b_1 = new JButton("1"); b_2 = new JButton("2"); b_3 = new JButton("3"); b_1.setMargin(new Insets(2,2,2,2)); b_2.setMargin(new Insets(2,2,2,2)); b_3.setMargin(new Insets(2,2,2,2)); p.add(button_1); p.add(b_1); p.add(b_2); p.add(b_3); p.add(button_2); p_1 = new JPanel(); p_2 = new JPanel(); p_3 = new JPanel(); p_1.setBackground(Color.RED); p_2.setBackground(Color.BLUE); p_3.setBackground(Color.GREEN); p_1.add(new JLabel("JPanel_1")); p_2.add(new JLabel("JPanel_2")); p_3.add(new JLabel("JPanel_3")); pane.add(p_1,"p1"); pane.add(p_2,"p2"); pane.add(p_3,"p3"); button_1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { card.previous(pane); } }); button_2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { card.next(pane); } }); b_1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { card.show(pane,"p1"); } }); b_2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { card.show(pane,"p2"); } }); b_3.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { card.show(pane,"p3"); } }); this.getContentPane().add(pane); this.getContentPane().add(p,BorderLayout.SOUTH); this.setSize(300, 200); this.setVisible(true); } public static void main(String[] args) { new CardLayoutDemo(); } }
執行結果: