本文簡要地示範瞭如何使用java CardLayout對程式進行佈局。 ...
一、設計流程
創建一個主視窗 jf
創建兩個主面版 mainJP1, mainJP2
創建三個子面版 subJP1, subJP2, subJP3
創建三個標簽,賦值 第1個頁面、第2個頁面、第3個頁面
創建兩個按鈕 btn1, btn2,賦值 上一頁、下一頁
設置主視窗的佈局為GridLayout(2,1)
設置主面版mainJP1的佈局為Cardlayout
設置主面版mainJP2的佈局為FlowLayout
分別為3個子面版設置不同的背景色
將3個標簽分別加入到3個子面版中
將3個子面版加入到主面版 mainJP1 中
將2個按鈕加入到主面版 mainJP2 中
將兩個主面版加入到主視窗中
處理2個按鈕的事件
將主視窗設置為可見
設置主視窗的關閉方式
二、源碼
package javaapplication1; import java.awt.CardLayout; import java.awt.Color; import java.awt.FlowLayout; import java.awt.GridLayout; 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; /** * * @author thinker */ public class buJu { /** * * @param args */ public static void main(String[] args) { JFrame jf = new JFrame(); JPanel mainjp1 = new JPanel(); JPanel mainjp2 = new JPanel(); JPanel subjp1 = new JPanel(); JPanel subjp2 = new JPanel(); JPanel subjp3 = new JPanel(); JLabel lb1 = new JLabel("第一個頁面"); JLabel lb2 = new JLabel("第二個頁面"); JLabel lb3 = new JLabel("第三個頁面"); JButton btn1 = new JButton("上一頁"); JButton btn2 = new JButton("下一頁"); jf.setLayout(new GridLayout(2, 1)); mainjp1.setLayout(new CardLayout()); mainjp2.setLayout(new FlowLayout()); subjp1.setBackground(Color.orange); subjp2.setBackground(Color.pink); subjp3.setBackground(Color.lightGray); subjp1.add(lb1, "1"); subjp2.add(lb2, "2"); subjp3.add(lb3, "3"); mainjp1.add(subjp1); mainjp1.add(subjp2); mainjp1.add(subjp3); mainjp2.add(btn1); mainjp2.add(btn2); jf.add(mainjp1); jf.add(mainjp2); btn1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { ((CardLayout)mainjp1.getLayout()).previous(mainjp1); } }); btn2.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { ((CardLayout)mainjp1.getLayout()).next(mainjp1); } }); jf.setVisible(true); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
三、效果圖
四、參考資料
1. java中CardLayout的使用方法
http://www.cnblogs.com/UUUP/p/3800843.html
2. 範明翔,陳錦輝 - 《深入淺出 java swing 程式設計》第三章節