在使用CardLayout时总是出错。谢谢!
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Frm extends JFrame{
JPanel curr;
JPanel jp1=new JPanel();
JPanel jp2=new JPanel();
JPanel jp3=new JPanel();
JPanel jp4=new JPanel();
JLabel lab1=new JLabel();
JLabel lab2=new JLabel();
JLabel lab3=new JLabel();
JButton but1=new JButton();
JButton but2=new JButton();
BorderLayout borderLayout=new BorderLayout();
CardLayout cardLayout=new CardLayout();
Frm(){
this.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
jIni();
}
private void jIni(){
curr=(JPanel)this.getContentPane();
this.setSize (300,300);
this.setLocation (300,300);
curr.setLayout(borderLayout);
curr.add(jp1,BorderLayout.CENTER);
curr.add(jp2,BorderLayout.SOUTH);
jp1.setBackground (new Color(255,0,0));
jp2.setBackground (new Color(0,255,0));
jp2.add (but1,BorderLayout.NORTH);
jp2.add (but2,BorderLayout.EAST);
but1.setText ("next");
but2.setText ("previous");
jp1.setLayout (cardLayout);
jp1.add (jp3,"j3");
jp1.add (jp4,"j4");
jp3.add (lab1);
jp4.add (lab2);
lab1.setText ("No.1");
lab2.setText ("No.2");
but1.addActionListener (new ActionListener(){
public void actionPerformed(ActionEvent e){
but1_Click(e);
}
});
but2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
but2_Click(e);
}
});
}
private void but1_Click(ActionEvent e){
cardLayout.show(jp3,"j3");
}
private void but2_Click(ActionEvent e){
cardLayout.show(jp4,"j4");
}
public static void main(String[] args){
Frm frm=new Frm();
frm.show ();
}
}
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Frm extends JFrame{
JPanel curr;
JPanel jp1=new JPanel();
JPanel jp2=new JPanel();
JPanel jp3=new JPanel();
JPanel jp4=new JPanel();
JLabel lab1=new JLabel();
JLabel lab2=new JLabel();
JLabel lab3=new JLabel();
JButton but1=new JButton();
JButton but2=new JButton();
BorderLayout borderLayout=new BorderLayout();
CardLayout cardLayout=new CardLayout();
Frm(){
this.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
jIni();
}
private void jIni(){
curr=(JPanel)this.getContentPane();
this.setSize (300,300);
this.setLocation (300,300);
curr.setLayout(borderLayout);
curr.add(jp1,BorderLayout.CENTER);
curr.add(jp2,BorderLayout.SOUTH);
jp1.setBackground (new Color(255,0,0));
jp2.setBackground (new Color(0,255,0));
jp2.add (but1,BorderLayout.NORTH);
jp2.add (but2,BorderLayout.EAST);
but1.setText ("next");
but2.setText ("previous");
jp1.setLayout (cardLayout);
jp1.add (jp3,"j3");
jp1.add (jp4,"j4");
jp3.add (lab1);
jp4.add (lab2);
lab1.setText ("No.1");
lab2.setText ("No.2");
but1.addActionListener (new ActionListener(){
public void actionPerformed(ActionEvent e){
but1_Click(e);
}
});
but2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
but2_Click(e);
}
});
}
private void but1_Click(ActionEvent e){
cardLayout.show(jp3,"j3");
}
private void but2_Click(ActionEvent e){
cardLayout.show(jp4,"j4");
}
public static void main(String[] args){
Frm frm=new Frm();
frm.show ();
}
}
import java.awt.*;
import java.awt.event.*;
class Frm extends JFrame
{
JPanel curr; JPanel jp1 = new JPanel();
JPanel jp2 = new JPanel();
JPanel jp3 = new JPanel();
JPanel jp4 = new JPanel();
JLabel lab1 = new JLabel();
JLabel lab2 = new JLabel();
JLabel lab3 = new JLabel();
JButton but1 = new JButton();
JButton but2 = new JButton(); BorderLayout borderLayout = new BorderLayout();
CardLayout cardLayout = new CardLayout(); Frm()
{
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jIni();
} private void jIni()
{
curr = (JPanel)this.getContentPane();
this.setSize(300, 300);
this.setLocation(300, 300);
curr.setLayout(borderLayout);
curr.add(jp1, BorderLayout.CENTER);
curr.add(jp2, BorderLayout.SOUTH);
jp2.setBackground(new Color(0, 255, 0));
jp2.add(but1, BorderLayout.NORTH);
jp2.add(but2, BorderLayout.EAST);
but1.setText("next");
but2.setText("previous");
lab1.setText("No.1");
lab2.setText("No.2");
jp3.add(lab1);
jp4.add(lab2);
jp1.setBackground(new Color(255, 0, 0));
jp1.setLayout(cardLayout);
jp1.add("j3", jp3);
jp1.add("j4", jp4); but1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
but1_Click(e);
}
}); but2.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
but2_Click(e);
}
});
} private void but1_Click(ActionEvent e)
{
( (CardLayout) jp1.getLayout()).show(jp1, "j4"); //card的父容器是jp1
} private void but2_Click(ActionEvent e)
{
( (CardLayout) jp1.getLayout()).show(jp1, "j3");
} public static void main(String[] args)
{
Frm frm = new Frm(); frm.setVisible(true);
}
}