由于某种原因,调用此方法时,此 JTable 没有任何变化(此方法在用户提交 SQL 查询后更新 JTable)。
吉文斯:
dataVector 和 columnNamesVector 已验证是否已正确填充。
JTable 是私有类变量。
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 对象并让表变量引用它,但是这对 JTable 没有影响objectGUI 显示的,表变量之前引用的那个。因此,您要更改引用变量的属性,但保持原始对象不变。
解决方案:您不应该创建一个新的 JTable,而应该创建一个新的 TableModel,然后将该 TableModel 放入现有的可视化 JTable 中。您可以通过调用来更改表的模型setModel(newModel)
on it.
编辑:或者正如 Wolfcastle 指出的那样,您可以更新现有的 TableModel,而不是重新创建一个。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)