gpt4 book ai didi

java - GUI (java) 中的 jTable 不显示数据库中的所有数据!表模型中的错误?

转载 作者:太空宇宙 更新时间:2023-11-04 15:18:31 24 4
gpt4 key购买 nike

这是最后的手段。我正在研究信息系统开发,甚至我的老师都无法解决这个问题...这是一个让你破解的难题!

这就是问题所在:GUI 中的 jTable 给了我这个:

enter image description here

这是 Microsoft Management Studio 向我展示的内容:

enter image description here

正如您所知,jTable (GUI) 有 2 个主要问题:

  1. 列名“Name”不包含任何信息。应该吗?为什么不显示?

  2. 正如您所知,该表包含多个列,太多甚至无法显示。因此,我想“添加一个限制”进行更改,以便 jTable 仅显示前 6 列。

这是 DataAccessLayer 中“创建表”的代码:

    private TableModel getResultSetAsDefaultTableModel(ResultSet rs) {
try {

String[] columnHeadings = new String[0];
Object[][] dataArray = new Object[0][0];


ResultSetMetaData md = rs.getMetaData();
int columnCount = md.getColumnCount();

for (int i = 1; i <= columnCount; i++) {
String columnName = md.getColumnName(i);
columnHeadings = Arrays.copyOf(columnHeadings, columnHeadings.length + 1);
columnHeadings[i - 1] = columnName;
}

int r = 0;

while (rs.next()) {

Object[] row = new Object[columnCount];
for (int i = 1; i <= columnCount; i++) {
row[i - 1] = rs.getObject(i);
}

dataArray = Arrays.copyOf(dataArray, dataArray.length + 1);
dataArray[r] = row;

r++;
}

DefaultTableModel dtm = new DefaultTableModel(dataArray, columnHeadings) {
public boolean isCellEditable(int row, int column) {

return false;
}
};

return dtm;

} catch (SQLException ex) {

Logger.getLogger(Dataaccesslayer.class.getName()).log(Level.SEVERE, null, ex);
}

return null;

}

如果您想让我向您展示代码的路径(框架、 Controller ),只需说出来,我就会发布它。

如果有人能解决这个问题,我将非常感激......

问候,

基督教

最佳答案

我认为这是因为在你的 for 循环中应该说 i = 0;而不是i = 1;因为第一个信息(名称)位于索引 0,对吗?

在您的情况下,只需保留 for 循环并更改此行 to:row[i - 1] = rs.getObject(i-1); 就足够了

要隐藏或显示列,您可以调用 setMin setMaxsetPreferredWidth在您的 TableColumn 上。

关于java - GUI (java) 中的 jTable 不显示数据库中的所有数据!表模型中的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20655197/

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