gpt4 book ai didi

java - JTable 不更新数据

转载 作者:行者123 更新时间:2023-12-02 03:18:59 24 4
gpt4 key购买 nike

由于某种原因,调用此方法时,此 JTable 没有任何变化(此方法在用户提交 SQL 查询后更新 JTable)。

鉴于:dataVector 和 columnNamesVector 已验证是否已正确填充。JTable 是私有(private)类变量。

private void updateData() {
updateDataVariables();
table = new JTable(dataVector, columnNamesVector)
{
@SuppressWarnings({ "unchecked", "rawtypes" })
public Class getColumnClass(int column)
{
for (int row = 0; row < getRowCount(); row++)
{
Object o = getValueAt(row, column);

if (o != null)
{
return o.getClass();
}
}

return Object.class;
}
};
}

有什么想法吗?

最佳答案

将对象与引用变量混淆是初学者常见的错误,但您需要了解它们是截然不同的。当您调用此方法时:

table = new JTable(dataVector, columnNamesVector) {.....

您正在创建一个新的 JTable 对象并让表变量引用它,但是这对 GUI 显示的 JTable对象没有影响,表变量之前引用的一个。因此,您要更改引用变量的属性,但保持原始对象不变。

解决方案:您不应该创建一个新的 JTable,而应该创建一个新的 TableModel,然后将该 TableModel 放入现有的可视化 JTable 中。您可以通过调用 setModel(newModel) 来更改表的模型。

编辑:或者正如 WolfcaSTLe 指出的那样,您可以更新现有的 TableModel,而不是重新创建一个。

关于java - JTable 不更新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16513823/

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