为什么这个程序中添加到p中的组件看不到,只能看到加入p1中的3个JButton 按钮?ChangePass_SYS p2,p4;Changepass p3;这2个都是定义好JPanel类(测试没有问题的);
import java.awt.*;
import java.awt.event.*;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;class exw extends JFrame implements ActionListener
{
CardLayout my;
JButton b1,b2,b3;
JPanel p,p1;
ChangePass_SYS p2,p4;Changepass p3;
exw()
{ Container con=this.getContentPane();
my=new CardLayout();
con.setLayout(new BorderLayout());
p1=new JPanel();
b1=new JButton("上");
b2=new JButton("中");
b3=new JButton("下");
p1.add(b1);p1.add(b2);p1.add(b3);
b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);
p1.validate();
p=new JPanel();
p.setLayout(my);
p2=new ChangePass_SYS();//这个是用panel做的界面,测试过了没问题
p3=new Changepass();
p4=new ChangePass_SYS();
my.addLayoutComponent(p2, "p2");
my.addLayoutComponent(p3," p3");
my.addLayoutComponent(p4, "p4");
con.add(p1,BorderLayout.SOUTH);
con.add(p,BorderLayout.CENTER);
this.validate();
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
this.setBounds(200, 300, 400,400);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==b1)
{
my.first(p);
}
else if(e.getSource()==b2)
{
my.next(p);
}
else if(e.getSource()==b3)
{
my.last(p);
}
}
}
public class ex
{
public static void main(String args[])
{
System.out.println("htmmp");
new exw();
}
}
import java.awt.*;
import java.awt.event.*;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;class exw extends JFrame implements ActionListener
{
CardLayout my;
JButton b1,b2,b3;
JPanel p,p1;
ChangePass_SYS p2,p4;Changepass p3;
exw()
{ Container con=this.getContentPane();
my=new CardLayout();
con.setLayout(new BorderLayout());
p1=new JPanel();
b1=new JButton("上");
b2=new JButton("中");
b3=new JButton("下");
p1.add(b1);p1.add(b2);p1.add(b3);
b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);
p1.validate();
p=new JPanel();
p.setLayout(my);
p2=new ChangePass_SYS();//这个是用panel做的界面,测试过了没问题
p3=new Changepass();
p4=new ChangePass_SYS();
my.addLayoutComponent(p2, "p2");
my.addLayoutComponent(p3," p3");
my.addLayoutComponent(p4, "p4");
con.add(p1,BorderLayout.SOUTH);
con.add(p,BorderLayout.CENTER);
this.validate();
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
this.setBounds(200, 300, 400,400);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==b1)
{
my.first(p);
}
else if(e.getSource()==b2)
{
my.next(p);
}
else if(e.getSource()==b3)
{
my.last(p);
}
}
}
public class ex
{
public static void main(String args[])
{
System.out.println("htmmp");
new exw();
}
}
my.addLayoutComponent(p2, "p2");
my.addLayoutComponent(p3," p3");
my.addLayoutComponent(p4, "p4");
换成
p.add 试一下布局最好使用ide进行操作
比如netbean jb ec等可视化编辑
my.addLayoutComponent(p2, "p2");
my.addLayoutComponent(p3," p3");
my.addLayoutComponent(p4, "p4");
换成
p.add 试一下换了程序没法运行 出错了
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;class exw extends JFrame implements ActionListener
{
CardLayout my;
JButton b1, b2, b3;
JPanel p, p1;
// ChangePass_SYS p2, p4;
// Changepass p3; exw()
{
Container con = this.getContentPane();
my = new CardLayout();
con.setLayout(new BorderLayout());
p1 = new JPanel();
b1 = new JButton("上");
b2 = new JButton("中");
b3 = new JButton("下");
p1.add(b1);
p1.add(b2);
p1.add(b3);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
p1.validate(); p = new JPanel();
p.setLayout(my);
// p2 = new ChangePass_SYS();// 这个是用panel做的界面,测试过了没问题
// p3 = new Changepass();
// p4 = new ChangePass_SYS();
// my.addLayoutComponent(p2, "p2");
// my.addLayoutComponent(p3, " p3");
// my.addLayoutComponent(p4, "p4");
JPanel p2 = new JPanel();
p2.add(new JButton("1"));
p.add(p2, "p2");
JPanel p3 = new JPanel();
p3.add(new JButton("2"));
p.add(p3, "p3");
JPanel p4 = new JPanel();
p4.add(new JButton("3"));
p.add(p4, "p4");
con.add(p1, BorderLayout.SOUTH);
con.add(p, BorderLayout.CENTER); this.validate();
this.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
this.setBounds(200, 300, 400, 400);
this.setVisible(true); } public void actionPerformed(ActionEvent e)
{
if (e.getSource() == b1)
{
my.first(p);
}
else if (e.getSource() == b2)
{
my.next(p);
}
else if (e.getSource() == b3)
{
my.last(p);
}
}
}public class ex
{
public static void main(String args[])
{
System.out.println("htmmp");
new exw();
}
}