Java Card Layout (CardLayout) – Example

Java Card Layout (CardLayout) – Example สำหรับ CardLayout เป็นการจัดวาง Layout แบบหลาย ๆ Stack Layoutทับซ้อนกัน และสามารถแสดง Layout สลับกันไปมาได้ โดยแต่ล่ะ Layout อาจจะใช้ Panel เป็นตัวคลุม Controls ไว้ และในภายแต่ล่ะ Panel ก็สามารถที่จะสร้าง Layout เป็นของตัวเองได้ ซึ่งถ้าเราใช้ CardLayout จะเป็นเหมือนมุมมองการเปิด Card หรือหนังสือ คือจะมีหลาย ๆ หน้านั้นเอง

Java Card Layout (CardLayout)

Java Card Layout (CardLayout) – Example

Syntax

1.CardLayout cards = new CardLayout();
2.cardPanel = new JPanel();
3.cardPanel.setLayout(cards);
4. 
5.cardPanel.add(panel1, "Panel 1");
6.cardPanel.add(panel2, "Panel 2");
7.cardPanel.add(panel3, "Panel 3");

Component Control ของ Layout

Java Card Layout (CardLayout)

Example

MyForm.java

01.package com.java.myapp;
02. 
03.import java.awt.BorderLayout;
04.import java.awt.CardLayout;
05.import java.awt.EventQueue;
06.import java.awt.event.ActionEvent;
07.import java.awt.event.ActionListener;
08.import javax.swing.JButton;
09.import javax.swing.JFrame;
10.import javax.swing.JPanel;
11. 
12.public class MyForm extends JFrame {
13. 
14.CardLayout cards;
15.JPanel cardPanel;
16. 
17./**
18.* Launch the application.
19.*/
20.public static void main(String[] args) {
21.EventQueue.invokeLater(new Runnable() {
22.public void run() {
23.MyForm frame = new MyForm();
24.frame.setVisible(true);
25.}
26.});
27.}
28. 
29./**
30.* Create the frame.
31.*/
32.public MyForm() {
33.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
34.setBounds(100100450300);
35.setTitle("ThaiCreate.Com GUI Tutorial");
36. 
37.JPanel mainPanel = new JPanel();
38. 
39.// Button Next
40.JButton btnNext = new JButton("Next Panel");
41.btnNext.addActionListener(new ActionListener() {
42.public void actionPerformed(ActionEvent e) {
43.cards.next(cardPanel);
44.}
45.});
46.mainPanel.add(btnNext);
47. 
48.getContentPane().add(mainPanel,BorderLayout.NORTH);
49. 
50.cards = new CardLayout();
51.cardPanel = new JPanel();
52.cardPanel.setLayout(cards);
53. 
54.// Panel 1
55.JPanel panel1 = new JPanel();
56.JButton btn1 = new JButton("Button in Panel 1");
57.panel1.add(btn1);
58. 
59. 
60.// Panel 2
61.JPanel panel2 = new JPanel();
62.JButton btn2 = new JButton("Button in Panel 2");
63.panel2.add(btn2);   
64.JButton btn3 = new JButton("Button in Panel 2");
65.panel2.add(btn3);
66. 
67. 
68.// Panel 3
69.JPanel panel3 = new JPanel();
70.JButton btn4 = new JButton("Button in Panel 3");
71.panel3.add(btn4);    
72.JButton btn5 = new JButton("Button in Panel 3");
73.panel3.add(btn5);
74.JButton btn6 = new JButton("Button in Panel 3");
75.panel3.add(btn6);      
76. 
77.cardPanel.add(panel1, "Panel 1");
78.cardPanel.add(panel2, "Panel 2");
79.cardPanel.add(panel3, "Panel 3");
80. 
81.getContentPane().add(mainPanel,BorderLayout.NORTH);
82.getContentPane().add(cardPanel,BorderLayout.CENTER);
83. 
84. 
85.}
86. 
87.}

Output

Java Card Layout (CardLayout)

แสดง CardLayout

Java Card Layout (CardLayout)

สามาถคลิกไปยัง Panel หรือ Layout ถัดไป

Java Card Layout (CardLayout)

สามาถคลิกไปยัง Panel หรือ Layout ถัดไป

แหล่งที่มา : thaicreate.com/java/java-gui-layout-cardlayout