1 import java.awt.CardLayout; 2 import java.awt.Color; 3 import java.awt.Container; 4 5 import javax.swing.JButton; 6 import javax.swing.JFrame; 7 8 public class CardLayoutDemo { 9 public static void main(String[] args) { 10 //新建一个JFrame框架 11 JFrame frame = new JFrame("CardLayout"); 12 frame.setSize(600, 400); 13 frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 14 15 final Container cp = frame.getContentPane();//得到一个内容面板;final标记的为常量,只能赋值一次 16 final CardLayout cardlayout = new CardLayout();//因为后期会对layout进行操作,才将其单独定义出来 17 cp.setLayout(cardlayout);//cp.setLayout(new CardLayout())的方式不可行,会出现异常 18 Color[] colors = { Color.white, Color.GRAY, Color.PINK, Color.cyan }; 19 20 for (int i = 0; i < colors.length; i++) { 21 String name = "card" + String.valueOf(i + 1); 22 JButton button = new JButton(name); 23 button.setBackground(colors[i]); 24 cp.add(name, button); 25 } 26 27 frame.setVisible(true); 28 /** 29 * 要点是创建线程时,要重写Thread类中的run方法 30 */ 31 Thread thread = new Thread() { 32 public void run() { 33 while (true) { 34 try { 35 Thread.sleep(400); 36 } catch (InterruptedException e) { 37 e.printStackTrace(); 38 } 39 /** 40 * cardLayout的next是另外一个内容面板 41 */ 42 cardlayout.next(cp); 43 } 44 } 45 }; 46 thread.start();//启动线程 47 } 48 }
原文地址:https://www.cnblogs.com/LJHAHA/p/10211082.html
时间: 2024-09-28 23:41:11