Java 如何知道JTable是否为空?
与大多数数据结构不同,Java 如何知道JTable是否为空?,java,swing,jtable,Java,Swing,Jtable,与大多数数据结构不同,JTable没有isEmpty()方法。那么,我们如何知道给定的JTable是否不包含任何值呢 table.getRowCount(); table.getColumnCount(); 如果其中一个为0,则表示没有数据。这将返回实际行数,而不管表上是否有任何筛选器 int count= jTable.getModel().getRowCount(); jTable.getRowCount()将只返回可见的行数。所以要检查isEmpty(),最好在模型上使用getRow
JTable
没有isEmpty()
方法。那么,我们如何知道给定的JTable
是否不包含任何值呢
table.getRowCount();
table.getColumnCount();
如果其中一个为0,则表示没有数据。这将返回实际行数,而不管表上是否有任何筛选器
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;
}
公共静态布尔值为空(JTable-JTable){
if(jTable!=null&&jTable.getModel()!=null){
返回jTable.getModel().getRowCount()您有固定数量的列。假设有三列
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;
}
public int-Actualrows(DefaultTableModel m){
int行=0;
int i=0;
对于(i=0;i
如果返回值等于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;
}
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
时,设置默认的行计数0
。当您想要使用JTable
时,使用从数据库返回计数的数据创建JTable
。因此,如果没有数据。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();
}
try(ResultSet rs=st.executeQuery(查询)){
int colcount=rs.getMetaData().getColumnCount();//get是数据库中的行数
DefaultTableModel tm=新的DefaultTableModel();
对于(int i=1;从技术上讲,您应该将其设置为“then's no data to display”(然后没有要显示的数据)。两者都可以返回零,但这并不意味着基础模型不包含任何数据。(1-)这段代码显示了如何将结果集中的数据添加到表模型中。问题是如何知道“表”何时显示是空的。数据可能来自何处是不相关的。正如我首先想说的,“没有为它定义的方法,不是吗?”.我只想说明我在做什么,jTable是否为空。从逻辑上讲,如果数据库没有返回数据,jTable将为空,对吗?我认为这种方法解决了我的问题,在我的项目中它正在工作。它可以解决你的问题,但你没有问这个问题,你的回答是离题的。数据库与此无关。问题是about JTable中的数据,而不是数据库查询是否返回任何数据。