2017-06-13 121 views
-1

我有一个SQLite DATABSE的,我从大量数据的数组列表添加数据,但该表只显示4行,我尝试在桌子jswing性质但不要有良好运气。 只能说明这一点:JTable中只显示4行数据

https://i.stack.imgur.com/NbfVK.png

而表展这个白色区域。我认为这是对行

,并表明这一区域的限制区域:

https://i.stack.imgur.com/SWW5p.png

我想表显示列表中的所有数据,我的意思是indefinded行。

Estaréagradecido SI我ayudan CON埃斯特problema。

对不起,我的英语。

代码:

public void llenarTabla() 
{ 
    System.out.println("Inicio de llenado de tabla.."); 
    //registrosTbl.removeAll(); 
    DefaultTableModel model; 

    model = (DefaultTableModel) registrosTbl.getModel(); 
    int filas= model.getRowCount(); 
    if (model.getRowCount() > 0) { 
     System.out.println("Vaciado de tabla..."); 
     for (int i = model.getRowCount() - 1; i > -1; i--) 
     { 
      model.removeRow(i); 
      System.out.println("Eliminada fila: "+i); 
     } 
     System.out.println("Fin vaciado de tabla..."); 
    } 
    List<Registro> lista = new ArrayList<Registro>(); 
    lista = FuncionesDB.mostrarTodo(); 

    if(lista.isEmpty()) 
    {    
     jScrollPane1.setVisible(false); 
     registrosTbl.setVisible(false); 

     JLabel mensaje = new JLabel(); 
     mensaje.setText("No se han realizado consultas"); 
     mensaje.setForeground(Color.WHITE); 
     mensaje.setBounds(250, 180, 330, 40); 
     mensaje.setVisible(true); 

     RegPnl.add(mensaje); 


    }else{ 
     Object rowData[] = new Object[13]; 
     System.out.println("Llenando tabla..."); 
     for(int i =0; i< lista.size(); i++) 
     { 
      System.out.println("numero "+i); 

      rowData[0]= lista.get(i).getId(); 
      rowData[1]= lista.get(i).getNombreNeg(); 
      rowData[2]= lista.get(i).getEdad(); 
      rowData[3]= lista.get(i).getCostoProd(); 
      rowData[4]= lista.get(i).getSueldo(); 
      rowData[5]= lista.get(i).getUtilidades(); 
      rowData[6]= lista.get(i).getFormaPago(); 
      rowData[7]= lista.get(i).getNegocio(); 
      rowData[8]= lista.get(i).getSexo(); 
      rowData[9]= lista.get(i).getCompatibilidad(); 
      rowData[10]= lista.get(i).getRelacionPS(); 
      rowData[11]= lista.get(i).getResumen(); 
      rowData[12]= lista.get(i).getFecha(); 
      model.addRow(rowData); 
     } 
    } 
      System.out.println("Fin llenado.."); 
} 
+0

首先要删除所有来自的DefaultTableModel行,你可以只需使用'model.setRowCount(0)'。你用'lista = FuncionesDB.mostrarTodo();'得到你的数据,所以你需要调试你的代码来确定它为什么只包含4或2行数据。 – camickr

回答

0

创造出被声明为只有4行的新(默认 - )的TableModel:

public class TableModelWith4rowsOnly{ 
    public static void main(String[] args) { 
     TableModel completeDataFromDatabase = getQeryResultFromDatanaseAsTableModel(); 
     DefaultTableModel tableModelWith4rowsOnly = new DefaultTableModel(4, completeDataFromDatabase.getColumnCount()) { 

      @Override 
      public Object getValueAt(int row, int column) { 
       return completeDataFromDatabase.getValueAt(row, column); 
      } 

     }; 
     JTable jTable = new JTable(tableModelWith4rowsOnly); 
     JOptionPane.showMessageDialog(null, jTable); 
    } 

    private static TableModel getQeryResultFromDatanaseAsTableModel() { 
     TableModel completeDataFromDatabase = new DefaultTableModel(10, 3) { 
      @Override 
      public Object getValueAt(int arg0, int arg1) { 
       return "value" + new Random().nextInt(4); 
      } 
     }; 
     return completeDataFromDatabase; 
    } 
}