2016-12-12 2 views
0

何か私にこのエラーを説明できますか、何が起こっているのか理解できませんか? imtringはJTableをリセットするので、cargartablaclientesメソッドを呼び出すたびに、それ以上の行は追加されません。 その後、スレッド「AWT-EventQueue-0」の例外java.lang.ArrayIndexOutOfBoundsException:0> = 0

public void agregarnuevafila(javax.swing.JTable Table) 
{ 
    //Define temp como una variable de tipo DefaultTableModel 
    DefaultTableModel temp = (DefaultTableModel) Table.getModel(); 
    Object nuevo[] = {"","","","","","",""}; 

    //Inserta la nueva fila al objeto correspondiente 
    temp.addRow(nuevo); 
} 

public void cargartablaclientes(javax.swing.JTable jTable1, String fech) 
{ 
    int linea = 1; 
    reiniciarJTable(jTable1); 
    try 
    { 
     Connection cn = sql.Conectar(); 

     String query = "SELECT * FROM datos where fecha= '"+fech+"' "; 
     ResultSet rs = sql.stmt.executeQuery(query); 
     rs.first();   
     if (rs!=null) 
     { 
      do 
      { 
       jTable1.setValueAt(rs.getString("serie"), linea, 0); 
       jTable1.setValueAt(rs.getString("placa"), linea, 1); 
       jTable1.setValueAt(rs.getString("fecha"), linea, 2); 
       jTable1.setValueAt(rs.getString("hora_entrada"), linea, 3); 
       jTable1.setValueAt(rs.getString("tipo"), linea, 4); 
       jTable1.setValueAt(rs.getString("hora_salida"), linea, 5); 
       jTable1.setValueAt(rs.getString("total"), linea, 6); 
       linea++; 

       if (linea >= 4) 
       { 
        agregarnuevafila(jTable1); 
       }      
       rs.next(); 
      }while(rs!=null); 
     }    
    } 
    catch(SQLException ex) 
    { 
     System.out.println(ex);    
    }  

} 

public static void reiniciarJTable(javax.swing.JTable Tabla){ 
    DefaultTableModel modelo = (DefaultTableModel) Tabla.getModel(); 
    while(modelo.getRowCount()>0)modelo.removeRow(0); 

    TableColumnModel modCol = Tabla.getColumnModel(); 
    while(modCol.getColumnCount()>0)modCol.removeColumn(modCol.getColumn(0)); 
} 

テーブルをロードし、コンソールで例外の表示があなたのTableModelが0の列があり、この

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0 >= 0 
at java.util.Vector.elementAt(Vector.java:470) 
at javax.swing.table.DefaultTableColumnModel.getColumn(DefaultTableColumnModel.java:294) 
at sun.swing.SwingUtilities2.convertColumnIndexToModel(SwingUtilities2.java:1905) 
at javax.swing.JTable.convertColumnIndexToModel(JTable.java:2582) 
at javax.swing.JTable.setValueAt(JTable.java:2741) 
at BaseSQL.modelo.cargartablaclientes(modelo.java:197) 
at ParqueoSQL.ParqueoAstor.<init>(ParqueoAstor.java:44) 
at ParqueoSQL.ParqueoAstor$17.run(ParqueoAstor.java:1178) 
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:312) 
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:745) 
at java.awt.EventQueue.access$300(EventQueue.java:103) 
at java.awt.EventQueue$3.run(EventQueue.java:706) 
at java.awt.EventQueue$3.run(EventQueue.java:704) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) 
at java.awt.EventQueue.dispatchEvent(EventQueue.java:715) 
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) 
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) 
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) 
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) 
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) 
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91) 
+0

は、あなたがインデックス0(そう最初の要素)にある要素を取得しようとしているようです:あなたはJTableを作成するときに、必要な列数を指定する必要があります。 – Mat

+1

あなたのメソッド名がすべて小文字であれば 'cargartablaclientes'が' cargarTablaClientes'に変更すると、あなたのメソッド名はlowerCamelCaseとメソッド名で始まるはずです: 'javax.swing.JTable Table'から' javax.swing.JTable Table' .swing.JTable table' – Frakcool

+0

'rs.first();' if文の中でその行を移動したいかもしれません。 – Frakcool

答えて

1
DefaultTableModel temp = (DefaultTableModel) Table.getModel(); 
Object nuevo[] = {"","","","","","",""}; 

//Inserta la nueva fila al objeto correspondiente 
temp.addRow(nuevo); 

です。 0の要素は、(空)を取得することがありますしながら、

DefaultTableModel model = new DefaultTableModel(0, 7); 
JTable table = new JTable(model); 
+0

あなたに感謝、あなたは私をたくさん助けます –

関連する問題