2011-12-27 76 views
0

在我的代码中,我在Jtable中看不到任何输出。无法使用MySql数据在JTable中显示任何输出

在NetBeans中,我在JFrame中有一个JTable,然后我创建了一个mysql数据库连接。

在MYSQL中,我创建了一个StudentMaster表,并将其中的数据从JTable中插入。当我在JTable中选择数据时,它不显示任何输出,也没有错误。

请帮帮我。

public class dbtable extends javax.swing.JFrame { 
    ResultSet result=null; 
    Connection conn=null; 
     Statement st=null; 

    public dbtable() { 
     initconn(); 
     initComponents(); 
    } 
    public Connection initconn(){ 
    try{ 
      Class.forName("com.mysql.jdbc.Driver"); 
      conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/project", "root", "root"); 
      st = conn.createStatement(); 
     } 
     catch(Exception e){ 
      System.out.println(e); 
     } 
    return conn; 
    } 
    public void tab(){ 
     try { 
      DefaultTableModel model=(DefaultTableModel)jTable1.getModel(); 

      st=conn.createStatement(); 
       String query="Select * from StudentMaster"; 
       result=st.executeQuery(query); 
       int i=0; 
       while(result.next()) 
       { 
        String id=result.getString("StudId"); 
        System.out.println(id); 
        String no=result.getString("StudNo"); 
        String name=result.getString("StudName"); 
        System.out.println(name); 
        String stcls=result.getString("StudClass"); 
        String m1=result.getString("StudMrk1"); 
        String m2=result.getString("StudMrk2"); 
        String tot=result.getString("StudTot"); 
        String res=result.getString("StudRes"); 

        model.addRow(new Object[]{id,no,name,stcls,m1,m2,tot,res}); 
       } 
       jTable1.setModel(model); 
       result.close(); 
       st.close(); 
       conn.close(); 
      } 
      catch (Exception e) { 
       System.out.println(e); 
      } 

    } 

    /** This method is called from within the constructor to 
    * initialize the form. 
    * WARNING: Do NOT modify this code. The content of this method is 
    * always regenerated by the Form Editor. 
    */ 
    @SuppressWarnings("unchecked") 
    // <editor-fold defaultstate="collapsed" desc="Generated Code"> 
    private void initComponents() { 

     jPanel1 = new javax.swing.JPanel(); 
     jPanel2 = new javax.swing.JPanel(); 
     CmdA = new javax.swing.JButton(); 
     CmdE = new javax.swing.JButton(); 
     CmdD = new javax.swing.JButton(); 
     CmdX = new javax.swing.JButton(); 
     jPanel3 = new javax.swing.JPanel(); 
     jScrollPane1 = new javax.swing.JScrollPane(); 
     jTable1 = new javax.swing.JTable(); 

     setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 
     setFont(new java.awt.Font("Arial", 0, 10)); 

     jPanel1.setBorder(javax.swing.BorderFactory.createMatteBorder(1, 1, 1, 1, java.awt.Color.darkGray)); 

     jPanel2.setBorder(javax.swing.BorderFactory.createMatteBorder(1, 1, 1, 1, java.awt.Color.darkGray)); 

     CmdA.setText("+"); 
     CmdA.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       CmdAActionPerformed(evt); 
      } 
     }); 

     CmdE.setText("E"); 

     CmdD.setText("-"); 
     CmdD.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       CmdDActionPerformed(evt); 
      } 
     }); 

     CmdX.setMnemonic('Q'); 
     CmdX.setText("Q"); 
     CmdX.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       CmdXActionPerformed(evt); 
      } 
     }); 

     javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); 
     jPanel2.setLayout(jPanel2Layout); 
     jPanel2Layout.setHorizontalGroup(
      jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(jPanel2Layout.createSequentialGroup() 
       .addGap(24, 24, 24) 
       .addComponent(CmdA, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) 
       .addComponent(CmdE, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) 
       .addComponent(CmdD, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) 
       .addComponent(CmdX, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addContainerGap(25, Short.MAX_VALUE)) 
     ); 

     jPanel2Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {CmdA, CmdD, CmdE, CmdX}); 

     jPanel2Layout.setVerticalGroup(
      jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup() 
       .addContainerGap() 
       .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE, false) 
        .addComponent(CmdE, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE) 
        .addComponent(CmdA, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE) 
        .addComponent(CmdD, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE) 
        .addComponent(CmdX, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE)) 
       .addGap(47, 47, 47)) 
     ); 

     jPanel2Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {CmdA, CmdD, CmdE, CmdX}); 

     jPanel3.setBorder(javax.swing.BorderFactory.createMatteBorder(1, 1, 1, 1, java.awt.Color.darkGray)); 

     jTable1.setModel(new javax.swing.table.DefaultTableModel(
      new Object [][] { 
       {null, null, null, null, null, null, null, null}, 
       {null, null, null, null, null, null, null, null}, 
       {null, null, null, null, null, null, null, null}, 
       {null, null, null, null, null, null, null, null} 
      }, 
      new String [] { 
       "ID", "Reg_No", "Name", "Class", "Subj 1", "Subj 2", "Total", "Result" 
      } 
     ) { 
      Class[] types = new Class [] { 
       java.lang.Integer.class, java.lang.Integer.class, java.lang.String.class, java.lang.String.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Integer.class 
      }; 
      boolean[] canEdit = new boolean [] { 
       false, false, false, false, false, false, false, false 
      }; 

      public Class getColumnClass(int columnIndex) { 
       return types [columnIndex]; 
      } 

      public boolean isCellEditable(int rowIndex, int columnIndex) { 
       return canEdit [columnIndex]; 
      } 
     }); 
     jScrollPane1.setViewportView(jTable1); 
     jTable1.getColumnModel().getColumn(0).setResizable(false); 
     jTable1.getColumnModel().getColumn(0).setPreferredWidth(25); 
     jTable1.getColumnModel().getColumn(1).setResizable(false); 
     jTable1.getColumnModel().getColumn(1).setPreferredWidth(25); 
     jTable1.getColumnModel().getColumn(2).setResizable(false); 
     jTable1.getColumnModel().getColumn(2).setPreferredWidth(250); 
     jTable1.getColumnModel().getColumn(3).setResizable(false); 
     jTable1.getColumnModel().getColumn(3).setPreferredWidth(150); 
     jTable1.getColumnModel().getColumn(4).setResizable(false); 
     jTable1.getColumnModel().getColumn(4).setPreferredWidth(25); 
     jTable1.getColumnModel().getColumn(5).setResizable(false); 
     jTable1.getColumnModel().getColumn(5).setPreferredWidth(25); 
     jTable1.getColumnModel().getColumn(6).setResizable(false); 
     jTable1.getColumnModel().getColumn(6).setPreferredWidth(25); 
     jTable1.getColumnModel().getColumn(7).setResizable(false); 
     jTable1.getColumnModel().getColumn(7).setPreferredWidth(25); 

     javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3); 
     jPanel3.setLayout(jPanel3Layout); 
     jPanel3Layout.setHorizontalGroup(
      jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGap(0, 865, Short.MAX_VALUE) 
      .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
       .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 865, Short.MAX_VALUE)) 
     ); 
     jPanel3Layout.setVerticalGroup(
      jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGap(0, 119, Short.MAX_VALUE) 
      .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
       .addGroup(jPanel3Layout.createSequentialGroup() 
        .addContainerGap() 
        .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 108, javax.swing.GroupLayout.PREFERRED_SIZE) 
        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) 
     ); 

     javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); 
     jPanel1.setLayout(jPanel1Layout); 
     jPanel1Layout.setHorizontalGroup(
      jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup() 
       .addContainerGap(546, Short.MAX_VALUE) 
       .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) 
      .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
       .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
     ); 
     jPanel1Layout.setVerticalGroup(
      jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(jPanel1Layout.createSequentialGroup() 
       .addContainerGap() 
       .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addContainerGap(543, Short.MAX_VALUE)) 
      .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
       .addGroup(jPanel1Layout.createSequentialGroup() 
        .addGap(209, 209, 209) 
        .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE) 
        .addContainerGap(350, Short.MAX_VALUE))) 
     ); 

     javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
     getContentPane().setLayout(layout); 
     layout.setHorizontalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() 
       .addContainerGap() 
       .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
     ); 
     layout.setVerticalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() 
       .addContainerGap() 
       .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
     ); 

     pack(); 
    }// </editor-fold> 

    private void CmdXActionPerformed(java.awt.event.ActionEvent evt) {          

    }          

    private void CmdDActionPerformed(java.awt.event.ActionEvent evt) {          

    }          

    private void CmdAActionPerformed(java.awt.event.ActionEvent evt) {          

    }          

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String args[]) { 
     java.awt.EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       new dbtable().tab(); 
       new dbtable().setVisible(true); 
      } 
     }); 
    } 

    // Variables declaration - do not modify 
    private javax.swing.JButton CmdA; 
    private javax.swing.JButton CmdD; 
    private javax.swing.JButton CmdE; 
    private javax.swing.JButton CmdX; 
    private javax.swing.JPanel jPanel1; 
    private javax.swing.JPanel jPanel2; 
    private javax.swing.JPanel jPanel3; 
    private javax.swing.JScrollPane jScrollPane1; 
    private javax.swing.JTable jTable1; 
    // End of variables declaration 

} 
+1

请学习Java的命名规则,并坚持他们... NOW – kleopatra 2011-12-27 16:10:13

+0

可以用数据就是你更新表*不是来自数据库?否则,数据库是无关紧要的。如果是这样,最好将表格排除在问题之外并专注于数据库。无论哪种方式,更短的代码更关注实际问题,并坚持常见的Java命名法,可能会取得一些进展。 – 2011-12-28 01:01:05

回答

3

生成的代码难以阅读,所以我会尽量避免,特别是如果你是新来Swing或你将有大量的代码,你可以不读和不理解。

话虽这么说,你的主要含有一种臭:

new dbtable().tab(); 
new dbtable().setVisible(true); 

所以,你要创建你的框架的两个实例;第一个用mysql数据填充,但从未显示。第二个不填充,但显示=>你会看到1帧没有填充。

尝试:

dbtable dbt = new dbtable(); 
dbt.tab() 
dbt.setVisible(true); 

BTW:尽量尊重的Java命名约定:http://java.about.com/od/javasyntax/a/nameconventions.htm

+1

这是正确的。您正在创建两个表格,并显示空的表格。 – 2011-12-27 13:36:01