【发布时间】:2015-06-02 18:12:45
【问题描述】:
与大多数数据结构不同,JTable 没有isEmpty() 方法。那么我们如何知道给定的JTable 是否不包含任何值呢?
【问题讨论】:
与大多数数据结构不同,JTable 没有isEmpty() 方法。那么我们如何知道给定的JTable 是否不包含任何值呢?
【问题讨论】:
这将返回实际的行数,而与表上的任何过滤器无关。
int count= jTable.getModel().getRowCount();
jTable.getRowCount() 将只返回可见的行数。所以要检查 isEmpty() 那么最好在模型上使用getRowCount()。
public static boolean isEmpty(JTable jTable) {
if (jTable != null && jTable.getModel() != null) {
return jTable.getModel().getRowCount()<=0?true:false;
}
return false;
}
【讨论】:
table.getRowCount();
table.getColumnCount();
如果其中一个为0,则没有数据。
【讨论】:
你有固定数量的列..假设三个
public int Actualrows(DefaultTableModel m) {
int row = 0;
int i = 0;
for (i = 0; i < m.getRowCount(); ++i) {
try {
if (!(m.getValueAt(i, 0).equals("")) && !(m.getValueAt(i, 1).equals(""))
&& !(m.getValueAt(i, 2).equals(""))) {
row++;
}
} catch (NullPointerException e) {
continue;
}
}
return row;
}
如果返回值等于 0,则绝对是一个空表
【讨论】:
其实,我的朋友,没有办法学习它。但我自己,用一种方法来了解它是否为空。
首先,在创建JTable 时设置默认行数0。当您想使用JTable 时,请使用从数据库返回计数的数据创建JTable。所以如果没有data.getRowCount() 将再次返回0。这样,你就会知道JTable 是否为空。
try (ResultSet rs = st.executeQuery(query)) {
int colcount = rs.getMetaData().getColumnCount();//get's the row count in the database
DefaultTableModel tm = new DefaultTableModel();
for (int i = 1; i <= colcount; i++) {
tm.addColumn(rs.getMetaData().getColumnName(i));
}
while (rs.next()) {
Object[] row = new Object[colcount];
for (int i = 1; i <= colcount; i++) {
row[i - 1] = rs.getObject(i);
}
tm.addRow(row);
}
jTblAd.setModel(tm);
conn.close();
}
最后我想说的是,如果 jTable 有头部,例如:姓名-姓氏-年龄等,table.getRowCount(); table.getColumnCount();not 工作因为 jtable 的头部。所以,我的意见是,如果我们不能检查jTable,检查表中写入的Dataset。
【讨论】: