import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;public class MyWindows02 extends JFrame {
     public static void main(String args[]){
           JFrame f=new JFrame("我的第一个窗口");
       
           JPanel p1=new JPanel();
           
           int count=2;
           JButton[] buttons=new JButton[count];
           for(int i=0;i<count;i++){
            buttons[i]=new JButton();
            p1.add(buttons[i]);
            }
           
           buttons[0].setText("Yes");
           buttons[1].setText("No");
     
           
           JLabel lb1=new JLabel("1、你的姓名是:");
           JTextField tf1=new JTextField(10);
           
           JPanel p2=new JPanel();
           p2.add(lb1);
           p2.add(tf1);
           lb1.setBounds(1,1,10,2);
           tf1.setBounds(1,3,10,2);
           
           JLabel lb2=new JLabel("2、你所在的班级是:");
           JTextField tf2=new JTextField(10);
           
           JPanel p3=new JPanel();
           p3.add(lb2);
           p3.add(tf2);
           lb1.setBounds(1,5,10,2);
           tf1.setBounds(1,7,10,2);
           
           JLabel lb3=new JLabel("3、你的学号是:");
           JTextField tf3=new JTextField(10);
           
           JPanel p4=new JPanel();
           p4.add(lb3);
           p4.add(tf3);
           lb1.setBounds(1,9,10,2);
           tf1.setBounds(1,11,10,2);
           
           JLabel lb4=new JLabel("4、你想借阅的图书是:");
           JTextField tf4=new JTextField(10);
           
           JPanel p5=new JPanel();
           p5.add(lb4);
           p5.add(tf4);
           lb1.setBounds(1,13,10,2);
           tf1.setBounds(1,15,10,2);
           
           JLabel lb5=new JLabel("是否提交?",10);
           
           f.add(p1);
           f.add(p2);
           f.add(p3);
           f.add(p4);
           f.add(p5);
     
           f.setLayout(null);
           p1.setVisible(true);
           f.setSize(50,50);
           f.setVisible(true);
           
     }
}

解决方案 »

  1.   

    首先你主窗口都没有布局管理器,还有panel是不能独立显示的窗口,各个panel没有布局,还有frame尺寸太小,
      

  2.   

    代码如下,给你加了一个布局和窗体的大小:
    import java.awt.BorderLayout;
    import java.awt.GridLayout;import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTextField;public class MyWindows02 extends JFrame {
         public static void main(String args[]){
               JFrame f=new JFrame("我的第一个窗口");
               //创建JPanel
               JPanel p1=new JPanel();
               int count=2;
               JButton[] buttons=new JButton[count];
               for(int i=0;i<count;i++){
                buttons[i]=new JButton();
                p1.add(buttons[i]);
                }
               buttons[0].setText("Yes");
               buttons[1].setText("No");
         
               JLabel lb1=new JLabel("1、你的姓名是:");
               JTextField tf1=new JTextField(10);
               
               JPanel p2=new JPanel();
               p2.add(lb1);
               p2.add(tf1);
               lb1.setBounds(1,1,10,2);
               tf1.setBounds(1,3,10,2);
               
               JLabel lb2=new JLabel("2、你所在的班级是:");
               JTextField tf2=new JTextField(10);
               
               JPanel p3=new JPanel();
               p3.add(lb2);
               p3.add(tf2);
               lb1.setBounds(1,5,10,2);
               tf1.setBounds(1,7,10,2);
               
               JLabel lb3=new JLabel("3、你的学号是:");
               JTextField tf3=new JTextField(10);
               
               JPanel p4=new JPanel();
               p4.add(lb3);
               p4.add(tf3);
               lb1.setBounds(1,9,10,2);
               tf1.setBounds(1,11,10,2);
               
               JLabel lb4=new JLabel("4、你想借阅的图书是:");
               JTextField tf4=new JTextField(10);
               
               JPanel p5=new JPanel();
               p5.add(lb4);
               p5.add(tf4);
               lb1.setBounds(1,13,10,2);
               tf1.setBounds(1,15,10,2);
               
               JLabel lb5=new JLabel("是否提交?",10);
               f.setLayout(new GridLayout(5, 1));
               
               f.add(p2  );
               f.add(p3 );
               f.add(p4 );
               f.add(p5 );
               f.add(p1 );
               
                
               f.setSize(500,500);
               f.setVisible(true);
               f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
               
         }
    }
      

  3.   

     最后加个pack();先看看. 写代码时候(尤其是画面这种)先写一点看看,可以用了再大规模的写下去,别稀里糊涂写到最后发现不能用,又要从头改.默认的应该是流布局(flow),所以显示出来会比较奇怪, 而且你没有指定大小,java比较推荐的方式,感觉是设置控件的大小(使用Dimension之类的),然后把容器"撑大",然而写代码的话,感觉还是指定大小比较容易.关于布局就要慢慢看了... 边看边试估计一个下午又过去了
    个人感觉java自带的,BorderLayout和Grid还算好用.. java的布局基本上都需要panel装panel了.加油吧. 另外推荐一下miglayout