我需要通过 JTABLE 显示表中的数据,我用 google 搜索了几个小时,终于成功找到了执行此操作的代码,并且工作正常,但我认为存在一个来自 netbeans 的问题
这是我的 table
它有 6 列,
这是我的 jtable
这就是结果
现在,在在这里发帖之前,我尽力去谷歌或阅读有关 jtables 的 Oracle 文档,但找不到任何有关这个奇怪问题的内容, 如果我使用 4 列,它会显示 4 列数据,我从设计中增加了 1 列,它开始显示 5 列数据(完美),当我最后添加 1 列最后一列时,它仍然显示 5 列数据
这是代码
try {
MyConnection mc = new MyConnection();
Class.forName(mc.driver);
Connection connect = DriverManager.getConnection(mc.login);
Statement smt = connect.createStatement();
ResultSet rs = smt.executeQuery("select * from library_member");
ResultSetMetaData rsmeta = rs.getMetaData();
int columns = rsmeta.getColumnCount();
DefaultTableModel dtm = new DefaultTableModel();
Vector columns_name = new Vector(), data_rows = new Vector();
for(int i = 1; i < columns; i++){
columns_name.addElement(rsmeta.getColumnName(i));
}
dtm.setColumnIdentifiers(columns_name);
while(rs.next()){
data_rows = new Vector();
for(int j = 1; j < columns; j++){
data_rows.addElement(rs.getString(j));
}
dtm.addRow(data_rows);
}
jTable1.setModel(dtm);
} catch (Exception ex) {
ex.printStackTrace();
}
P.S 我认为它没有显示的列是因为 member_email 有 1 个空值,如果它是 true ,应该如何允许它,
问题!! : 如何将 rowCount 从 4 增加?它在 netbeans designview 中不可编辑,我没有足够的时间自己创建 jtable
<小时/>我在member_id=2处更新了member_email,但仍然没有显示:(
最佳答案
你数错了。将 for 循环中的 i = 1 更改为 i = 0。
for(int i = 0; i < columns; i++){
columns_name.addElement(rsmeta.getColumnName(i+1));
}
还有这里:
for(int j = 0; j < columns; j++){
data_rows.addElement(rs.getString(j+1));
}
另请注意 MadProgrammer 的评论,即 JDBC 行索引从 1 而不是 0 开始。这就是为什么您还需要 getColumnName(i+1) 和 getString(j+1)。
或者您可以在循环中从 1 开始计数并测试 <= 列,例如:
for(int i = 1; i <= columns; i++){
columns_name.addElement(rsmeta.getColumnName(i));
}
关于java - JTable 未显示超过 5 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28180609/