CardLayout的应用

import java.awt.CardLayout;
import java.awt.FlowLayout;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
 public class Test extends JFrame {
   static CardLayout Card = new CardLayout(5,5);
	  static  JPanel JPane1=new JPanel();
	  static JPanel  JPane3=new JPanel(Card);
	  JButton b1=new JButton("切换2");	 
  public void Test()
  {		 	  		
	  		JPane1.add(new TextField("其实的面板,不可缺少,否则第一次会覆盖"));
	  		JPane3.add(JPane1, "jp1");		 
	  		b1.addActionListener(new MyEvent());
  }
/**监听类*/
  class MyEvent implements ActionListener
  {
   public void actionPerformed(ActionEvent e)
   {	
  	  JPanel JPane2=new JPanel();
  	  JPane2.add(new TextField("点击后出现的面板"));
  	 JPane3.add(JPane2,"jp2"); 
  	  Card.show(JPane3, "jp2");
   }
   }
  public static void main(String[] args){	 
	  Test test = new Test();
	  test.Test();
	  test.add(JPane3);
	  test.add(test.b1);
	  test.setLayout(new FlowLayout());
	  test.setSize(500,500);
	  test.setVisible(true);
	  test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
 }

一开始主面板JPane3要先预设值一个显示面板JPane1,否则第一次点击切换会不出现面板JPane2。

你可能感兴趣的:(java,swing)