如题
在JFrame窗口中创建面板 (窗口对象 jf )
想弄个卡片布局的,实现按钮来切换各个面板Button but = new Button("next");
.......             //创建若干按钮
JPanel jp=new JPanel(new CardLayout()); 
JPanel jp1=new JPanel();
.......             //创建若干面板
jf.add("North",jp); //jf 为窗口对象 
.......             //监听器省略
jp.add(but);
.......             //添加若干按钮
jp.add("but",jp1);                       .............(1)
.......             //添加若干面板       .............(2)
但运行的时候只显示了窗口,这是为什么? 当删除(1)(2)后按钮又能显示出来
请问各位大大应该怎么改我想实现  点击按钮,切换面板。  请大大们把这段代码帖出来,小弟谢谢啦。

解决方案 »

  1.   

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;public class tc implements MouseListener{
    JFrame f=new JFrame("学生信息管理系统");
    CardLayout cl=new CardLayout();
    JPanel cards = new JPanel();
    JPanel p = new JPanel();
    JTextField t1 = new JTextField("读入成功!");
    JTextField t2,t3,t4,t5,t6;
    JPanel jp2,jp3,jp4,jp5,jp6;
    JButton but1,but2,but3,but4,but5,but6,but7;
    public void setWindow(){
    f.setLayout(new BorderLayout());
    f.setSize(480,400);
    f.setVisible(true);
    f.add("North",p);
    f.addWindowListener(new MyWindowListener());
    p.setLayout(new FlowLayout());
    cards.setLayout(cl);
    cards.add( "but1",new JPanel().add(t1));
    cards.add( "but2",jp2);
    cards.add( "but3",jp3);
    cards.add( "but4",jp4);
    cards.add( "but5",jp5);
    cards.add( "but6",jp6);
    but1 = new JButton("读入");
    but2 = new JButton("添加");
    but3 = new JButton("删除");
    but4 = new JButton("修改");
    but5 = new JButton("查询");
    but6 = new JButton("评定");
    but7 = new JButton("保存");
    p.add(but1);
    p.add(but2);
    p.add(but3);
    p.add(but4);
    p.add(but5);
    p.add(but6);
    p.add(but7);
    but1.addMouseListener(this);
    but2.addMouseListener(this);
    but3.addMouseListener(this);
    but4.addMouseListener(this);
    but5.addMouseListener(this);
    but6.addMouseListener(this);
    but7.addMouseListener(this);
    }
    public static void main(String args[]){
    tc t=new tc();
    t.setWindow();
    }
    public void mouseClicked(MouseEvent e) {
    if(e.getSource()==but1)
    cl.first(cards);
    else if(e.getSource()==but2)
    cl.next(cards);
    else if(e.getSource()==but3)
    cl.next(cards);
    else if(e.getSource()==but4)
    cl.next(cards);
    else if(e.getSource()==but5)
    cl.next(cards);
    else if(e.getSource()==but6)
    cl.last(cards);
    else if(e.getSource()==but7)
    System.exit(0);//保存并退出
    }
    public void mouseEntered(MouseEvent e) {}
    public void mouseExited(MouseEvent e) {}
    public void mousePressed(MouseEvent e) {}
    public void mouseReleased(MouseEvent e) {}

    }
    class MyWindowListener extends WindowAdapter{
    public void windowClosing(WindowEvent e){
    e.getWindow().dispose();
    System.exit(0);
    }
    }小弟昨晚刚自学图形界面,请大大们赐教。。
    下面的代码不用看 只要看上面那段,代码还没写完,写得也很废。为什么按钮在面板中显示不出来就行。

                       cards.add( "but1",new JPanel().add(t1));
    cards.add( "but2",jp2);
    cards.add( "but3",jp3);
    cards.add( "but4",jp4);
    cards.add( "but5",jp5);
    cards.add( "but6",jp6);
    删除就能显示按钮
      

  2.   

    没看到JPanel添加到JFrame的代码
      

  3.   


    额,看见了你那后面的jp2,jp3,jp4,jp5,jp6;没有创建对象就被添加到cards里了。会抛空指针异常吧