现在我想做几个面板,每一个面板都有其自己既功能,简单来说,就是例如按了"下一步"的按钮就在同一个JFrame显示
另一个询问框,同时如果按钮了"上一步"的按钮也可以回到原来的面板,就好像这里的论坛有一个人做的模拟ATM的程序那样,
不过不是弹出另一个窗口,然后把原来的窗口隐藏,
我开始写了下边的代码,发觉是不行的,不过我都觉得应该不行,所以希望有高人指教一下
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class testpanel extends JFrame implements ActionListener
{
JPanel p1=new JPanel() ;
JPanel p2=new JPanel() ;
JButton b1=new JButton("Enter") ;
JButton b2=new JButton("Finish") ;
JButton b3=new JButton("Return") ;
JLabel l1=new JLabel("Wellcome") ;
JLabel l2=new JLabel("Test Finish") ;
public testpanel()
{
this.setLayout(new BorderLayout());
p1.setLayout(new FlowLayout()) ;
p2.setLayout(new FlowLayout()) ;
p1.add(b1,BorderLayout.SOUTH ) ;
p1.add(l1,BorderLayout.CENTER ) ;
p1.setVisible(true) ;
p2.setVisible(false) ;
p2.add(b2,BorderLayout.CENTER ) ;
p2.add(b3,BorderLayout.CENTER ) ;
p2.add(l2,BorderLayout.NORTH ) ;
b1.addActionListener(this) ;
b2.addActionListener(this) ;
b3.addActionListener(this) ;
this.add(p2) ;
this.add(p1) ;
this.setSize(300,200) ;
this.setVisible(true) ;
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource() ==b1);
{
p1.setVisible(false) ;
p2.setVisible(true) ;
}
if(e.getSource() ==b3)
{
p1.setVisible(true) ;
p2.setVisible(false) ;
}
if(e.getSource() ==b2)
{
System.exit(0);
}
}
public static void main(String[] args) {
new testpanel();
}
}
其实我的意思就是用两个JPanel添加到JFrame里面 然后通过各自的setvisible设置为true 或flase 来控制它的显示,结果
是最上面的JPanel覆盖了下边的JPanel了,所以行不通,请指教一下,谢谢啦