gpt4 book ai didi

java - 尽管行数超过 1,但 JTable 仅显示 1 行

转载 作者:行者123 更新时间:2023-11-30 06:46:38 27 4
gpt4 key购买 nike

我正在尝试将一些数据从数据库(我使用 Oracle 的 SQL Developer)加载到 java 中的 JTable 中。我将数据库中的数据放入 Vector of Vector 中,这是我的加载方法,我将其放入名为 DBJobs 的类中:

public Vector load() {
try {
Vector tableData = new Vector();
Conn con = new Conn();
con.openConn();
con.statement = con.dbConn.createStatement();
ResultSet rs = con.statement.executeQuery("Select * from Jobs");

while (rs.next()) {
Vector<Object> row = new Vector<Object>();
row.add(rs.getString("Job_ID"));
row.add(rs.getString("Job_Title"));
row.add(rs.getString("Parent_Job_ID_1"));
row.add(rs.getString("Parent_Job_ID_2"));
row.add(rs.getString("Description"));
tableData.add(row);
}

con.closeConn();
return tableData;
} catch (SQLException ex) {
ex.printStackTrace();
return null;
}
}

然后我尝试将它们填充到我用另一个类中的编辑器制作的 JTable 中:

private void populateJobsTable() {
Vector<String> tableHeader = new Vector<String>();
tableHeader.add("Job ID");
tableHeader.add("Job Name");
tableHeader.add("Parent Job ID 1");
tableHeader.add("Parent Job ID 2");
tableHeader.add("Description");

Vector tableData = dbJobs.load();
tblJobs.setModel(new DefaultTableModel(tableData, tableHeader));
}

但我只能看到表中的 1 行数据。我尝试打印 Vector 有多少数据以及 Table 有多少行,它们都返回 49,这是我数据库中的数据量。那么为什么我的表格只显示 1 条数据?

编辑:我认为这是生成 JTable 的代码:

tblJobs = new javax.swing.JTable();
tblJobs.setFont(new java.awt.Font("Tempus Sans ITC", 0, 14)); // NOI18N
tblJobs.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null}
},
new String [] {
"Job Name"
}
) {
Class[] types = new Class [] {
java.lang.String.class
};
boolean[] canEdit = new boolean [] {
false
};

public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}

public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});
tblJobs.setPreferredSize(new java.awt.Dimension(225, 16));
jScrollPane5.setViewportView(tblJobs);
if (tblJobs.getColumnModel().getColumnCount() > 0) {
tblJobs.getColumnModel().getColumn(0).setResizable(false);
}

最佳答案

首先,这不是 MCVE。该代码如何完整?我们如何编译和测试该代码?你没看我的评论吗???

我建议您放弃 IDE 并学习如何手动创建 GUI。 IDE 使用自定义 TableModel 生成 JTable 的意义何在?该代码完全无用,因为您随后使用创建自己的 TableModel 并使用 setModel(...) 方法来替换 IDE 创建的模型。

tblJobs.setPreferredSize(new java.awt.Dimension(225, 16));

上面的代码看起来很可疑。您不应该在 Swing 组件上设置首选大小。表格的大小看起来一次只能显示一行。

如果这不是问题,那么在发布正确的 MCVE 之前我不会再提出任何建议。每个问题都应该有一个MCVE,这样我们就不会花时间猜测您可能会做什么或不会做什么。

关于java - 尽管行数超过 1,但 JTable 仅显示 1 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43579623/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com