我正在从数据库中选择记录,它在 JTable 中显示了一些空记录以及我无法使用表过滤记录的记录。
public ArrayList<User> getUsers(){
ArrayList<User> usersList=new ArrayList<User>();
Connection connection=getConnection();
String query="SELECT * FROM info";
Statement myState;
ResultSet rs;
try{
myState=connection.createStatement();
rs=myState.executeQuery(query);
User user;
while(rs.next()){
user=new User(rs.getInt("id"),rs.getString("fname"),rs.getString("lname"),rs.getInt("age"));
usersList.add(user);
}
}
catch(Exception ep){
ep.printStackTrace();
}
return usersList;
}
我正在使用下面给出的函数在 JTable 中填充这些记录。
public void ShowUsersinJTable(){
ArrayList<User> uList=getUsers();
DefaultTableModel model=(DefaultTableModel)jTable1.getModel();
Object[] row=new Object[4];
for(int i=0;i<uList.size();i++){
row[0]=uList.get(i).getId();
row[1]=uList.get(i).getFname();
row[2]=uList.get(i).getLname();
row[3]=uList.get(i).Age();
model.addRow(row);
}
}
最佳答案
由于代码似乎是正确的,请尝试将您的代码更改为:
ArrayList<User> uList=getUsers();
DefaultTableModel model=(DefaultTableModel)jTable1.getModel();
for(int i=0;i<uList.size();i++){
Object[] row=new Object[4];
row[0]=uList.get(i).getId();
row[1]=uList.get(i).getFname();
row[2]=uList.get(i).getLname();
row[3]=uList.get(i).Age();
model.addRow(row);
}
您也可以在填充表格之前删除所有行(仅当表格已填充数据时才需要)
for (int i = table.getRowCount() - 1; i >= 0; i--) {
model.removeRow(i);
}
请告诉我它是否有效,以便在需要时我可以进一步帮助您
关于java - 如何删除 JTable Java 中的空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41099957/