本帖最后由 aa84025907 于 2012-09-01 22:17:42 编辑

解决方案 »

  1.   

    你 StudentManger都未extends JFrame这里:
    public StudentManger() {应该改为:
    class StudentManger() extends JFrame {
    吧?
      

  2.   

    panel.add(sTable);
    JScrollPane scroll = new JScrollPane(sTable);上面,将panel.add(sTable);删了,
    JTable加在Jscrollpane上很完美的
      

  3.   

    1、你都没有哪里调用dispaly();
    2、这样布局是不能显示的
    把代码做了点修改,你仔细观察一下,功能是能实现的。
    import java.awt.*; 
    import javax.swing.*; 
    import java.awt.event.*;
    import java.sql.*;
    import java.util.*;
    import java.util.List;
    public class StudentManger extends JFrame { private JPanel contentPane=(JPanel)this.getContentPane();
    JPanel jpn=new JPanel();
    JPanel jps=new JPanel();
    private JTable table;
    private JTextField studNo;
    private JTextField studName;
    private JTextField studAge;
    private JTextField studSex;
    private JTextField studClass;
    Connection con = null;
    Statement stmt = null;
    ResultSet rs = null;
    Object[][] playerInfo;
    private JPanel panel;
    private String[] columnNames;
    private JTable table_1;
    int i=0,j=0;
    /**
    * Launch the application.
    */
    public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
    public void run() {
    try {
    StudentManger frame = new StudentManger();
    Dimension screen=Toolkit.getDefaultToolkit().getScreenSize();//得到屏幕的大小  
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        Dimension frameSize = frame.getSize();
        if (frameSize.height > screenSize.height) {
            frameSize.height = screenSize.height;
        }
        if (frameSize.width > screenSize.width) {
            frameSize.width = screenSize.width;
        }
        frame.setLocation(0,0); 
        frame.setSize((int)screen.getWidth(),(int)screen.getHeight()-25);
        frame.setVisible(true); 
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    });
    } /**
    * Create the frame.
    */
    public StudentManger() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 613, 468);
    this.connDB();
    System.out.println("数据库连接成功");
    //contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    contentPane.setLayout(new BorderLayout()); 
        
        
    JLabel lblNewLabel = new JLabel("学号:");
    lblNewLabel.setBounds(10, 10, 57, 18);
    jpn.add(lblNewLabel); studNo = new JTextField();
    studNo.setBounds(50, 9, 106, 21);
    jpn.add(studNo);
    studNo.setColumns(10); JLabel lblNewLabel_1 = new JLabel("姓名:");
    lblNewLabel_1.setBounds(178, 12, 45, 15);
    jpn.add(lblNewLabel_1); studName = new JTextField();
    studName.setBounds(233, 9, 106, 21);
    jpn.add(studName);
    studName.setColumns(10); JLabel label = new JLabel("性别:");
    label.setBounds(366, 12, 45, 15);
    jpn.add(label); studAge = new JTextField();
    studAge.setBounds(421, 9, 106, 21);
    jpn.add(studAge);
    studAge.setColumns(10); JLabel lblNewLabel_2 = new JLabel("年龄:");
    lblNewLabel_2.setBounds(10, 38, 57, 15);
    jpn.add(lblNewLabel_2); studSex = new JTextField();
    studSex.setBounds(50, 38, 106, 21);
    jpn.add(studSex);
    studSex.setColumns(10); JLabel lblNewLabel_3 = new JLabel("班级:");
    lblNewLabel_3.setBounds(178, 37, 54, 15);
    jpn.add(lblNewLabel_3); studClass = new JTextField();
    studClass.setBounds(233, 40, 106, 21);
    jpn.add(studClass);
    studClass.setColumns(10); JButton btnAdd = new JButton("增加");
    btnAdd.setBounds(22, 80, 93, 32);
    jpn.add(btnAdd); JButton btnDelete = new JButton("删除");
    btnDelete.setBounds(137, 80, 93, 32);
    jps.add(btnDelete); JButton btnUpdate = new JButton("修改");
    btnUpdate.setBounds(252, 80, 93, 32);
    jps.add(btnUpdate); JButton btnSelete = new JButton("查询");
    btnSelete.setBounds(367, 80, 93, 32);
    jps.add(btnSelete);
    btnSelete.addActionListener(new ActionListener()
    {
    public void actionPerformed(ActionEvent arg0) { 
    display(); 
    contentPane.revalidate();
    }
    }
    );
    JButton btnShow = new JButton("显示");
    btnShow.setBounds(482, 80, 93, 32);
    jps.add(btnShow);  
    btnShow.addActionListener(new ActionListener()
    {
    public void actionPerformed(ActionEvent arg0) { 
    display();  
    contentPane.revalidate();

    }
    );
    contentPane.add(jpn,BorderLayout.NORTH);
    contentPane.add(jps,BorderLayout.SOUTH);

    //display();如果一开始就显示就直接调用。
    }
            /*这个是我测试的,我调用自己的数据库,其实有些地方可以优化的。
    public void  display() {// 显示所有学生的基本信息
    int i=0,j=0;
         List al = new ArrayList();
         Connection conn = DBConnection.getConnection();
         try {
            Statement stmt=conn.createStatement();
         ResultSet rs = stmt.executeQuery("select * from messageinfo"); 
            while(rs.next())
            {
             i++;
            }
            ResultSet rss=stmt.executeQuery("select * from messageinfo order by nid");
         columnNames = new String[] { "学号", "姓名", "年龄", "性别", "班级" }; 
         playerInfo = new Object[i][columnNames.length];
         while (rss.next()) {  
         playerInfo[j][0] = rss.getInt("ncod");
         playerInfo[j][1] = rss.getString("ntype");
         playerInfo[j][2] = rss.getString("nctime");
         playerInfo[j][3] = rss.getString("netime");
         playerInfo[j][4] = rss.getString("medtime"); 
         j++;
         }
         } catch (SQLException e) {
         e.printStackTrace();
         }
         JTable sTable = new JTable(playerInfo, columnNames);// 创建网格
         //sTable.setBounds(0, 122, 597, 308);
         //panel.add(sTable);
         JScrollPane scroll = new JScrollPane(sTable);
         contentPane.add(scroll,BorderLayout.CENTER); 
    }*/
            //你的dispaly(),
            public void display() {// 显示所有学生的基本信息
    int i = 0;
    int j = 0;
    List al = new ArrayList();
    try {
    rs = stmt.executeQuery("select * from studInf");
    while (rs.next()) { // 找出表中的记录数赋给i
    al.add(rs.getString("studNo"));
    al.add(rs.getString("studName"));
    al.add(rs.getString("studAge"));
    al.add(rs.getInt("studSex"));
    al.add(rs.getString("studClass"));
    i++;//这里可以优化
    }
    } catch (SQLException e) {
    e.printStackTrace();
    }
    playerInfo = new Object[i][5];
    columnNames = new String[] { "学号", "姓名", "年龄", "性别", "班级" };try {
    rs = stmt.executeQuery("select * from studInf order by studNo");
    while (rs.next()) {
    playerInfo[j][0] = rs.getString("studNo");
    playerInfo[j][1] = rs.getString("studName");
    playerInfo[j][2] = rs.getInt("studAge");
    playerInfo[j][3] = rs.getString("studSex");
    playerInfo[j][4] = rs.getString("studClass");
    j++;
    }
    } catch (SQLException e) {
    e.printStackTrace();
    }
    JTable sTable = new JTable(playerInfo, columnNames);// 创建网格
    //sTable.setBounds(0, 122, 597, 308);
    //panel.add(sTable);
    JScrollPane scroll = new JScrollPane(sTable);
    contentPane.add(scroll,BorderLayout.CENTER); 
    }
    //应该是OK了,我这边测试是OK,有问题再留言吧。