我有一个sqlite数据库,我从一个带有大量数据的arraylist中添加数据,但是这个表只显示了4行,我尝试用jswing属性设置表,但没有好运。 只显示这个:
表格显示了这个白色区域。我认为是行的限制区域
并显示此区域:
我想在表格中显示列表中的所有数据,我的意思是不确定的行。
Estaréagradecidosi me ayudan con este 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 :(得分:0)
创建一个新的(Default-)TableModel,声明只有4行:
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;
}
}