import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class SwingTest extends JFrame{
JPanel jp1,jp2;
JLabel[] jl=new JLabel[20];
JTextField[] jt=new JTextField[20];
JMenu jm1,jm2;
JMenuBar jmb;
JButton jb=new JButton("进入考试系统");
JButton jc=new JButton("退出");
int count=0;
public SwingTest(){
Container c=getContentPane();
jm1=new JMenu("file");
jm2=new JMenu("help");
jmb=new JMenuBar();
jp1=new JPanel();
jp2=new JPanel();
jp2.setLayout(null);
for(int i=0;i<jl.length;i++){
jl[i]=new JLabel();
jt[i]=new JTextField();
}
jb.addActionListener(new doit());
jp1.add(jb);
for(int j=0;j<jl.length;j++){
   int k=j%5; 
   if(k==5)
    count++;
 jt[j].setBounds(20+100*k,35*(count+1),40,25);
jl[j].setBounds(100+100*k,35*(count+1),40,25);
}
for(int k=0;k<jl.length;k++){
 jp2.add(jt[k]);
 jp2.add(jl[k]);
}
JMenuItem m1=new JMenuItem("start");
JMenuItem m2=new JMenuItem("finish");
JMenuItem m3=new JMenuItem("quit");
    jm1.add(m1);
    jm1.add(m2);
    jm1.add(m3);
    jmb.add(jm1);
    jmb.add(jm2);
    setJMenuBar(jmb);
    jp1.setVisible(true);
    jp2.setVisible(false);
    
     c.add(jp2);
     c.add(jp1);

}
private class doit implements ActionListener{
public void actionPerformed(ActionEvent e){
if(e.getSource()==jb)
jp1.setVisible(false);
jp2.setVisible(true);
}
}
public static void main(String args[]){
JFrame jf=new SwingTest();
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setSize(300,300);
jf.setVisible(true);
}
}为什么jp2  中添加的东西不能显示啊,    帮忙看一下       

解决方案 »

  1.   

    你这个要加布局管理器,如:
         c.setLayout(new GraidLayout(2,1));加了过可以显示出来你看看:你这个我小改了一下
    import javax.swing.*; 
    import java.awt.event.*; 
    import java.awt.*; 
    public class test extends JFrame{ 
    JPanel jp1,jp2; 
    JLabel[] jl=new JLabel[20]; 
    JTextField[] jt=new JTextField[20]; 
    JMenu jm1,jm2; 
    JMenuBar jmb; 
    JButton jb=new JButton("进入考试系统"); 
    JButton jc=new JButton("退出"); 
    int count=0; 

    public test(){ 
    Container c=getContentPane(); 
    c.setLayout(new GridLayout(2,1));
    jm1=new JMenu("file"); 
    jm2=new JMenu("help"); 
    jmb=new JMenuBar(); 
    jp1=new JPanel(); 
    jp2=new JPanel(); 
    jp2.setLayout(null); 

    for(int i=0;i <jl.length;i++){ 
    jl[i]=new JLabel("标簦"+String.valueOf(i+1)); 
    jt[i]=new JTextField(); 

    jb.addActionListener(new doit()); 
    jp1.add(jb); 
    for(int j=0;j <jl.length;j++){ 
         int k=j%5;    
      jt[j].setBounds(20+100*k,50*(count+1),40,25); 
    jl[j].setBounds(70+100*k,50*(count+1),40,25); 
    if(k==4) 
         count++; 

    for(int k=0;k <jl.length;k++){ 
      jp2.add(jt[k]); 
      jp2.add(jl[k]); 

    JMenuItem m1=new JMenuItem("start"); 
    JMenuItem m2=new JMenuItem("finish"); 
    JMenuItem m3=new JMenuItem("quit"); 
          jm1.add(m1); 
          jm1.add(m2); 
          jm1.add(m3); 
          jmb.add(jm1); 
          jmb.add(jm2); 
          setJMenuBar(jmb); 
          jp1.setVisible(true); 
          jp2.setVisible(false); 
          c.add(jp1); 
          c.add(jp2); 
          } 
    private class doit implements ActionListener{ 
    public void actionPerformed(ActionEvent e){ 
    if(e.getSource()==jb) 
    jp1.setVisible(false); 
    jp2.setVisible(true); 


    public static void main(String args[]){ 
    JFrame jf=new test(); 
    jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    jf.setSize(600,600); 
    jf.setVisible(true);