出于某种原因,当这个JTable被调用时,它没有任何变化(这个方法在用户提交SQL查询后更新JTable)。
给定:验证数据向量和列名称向量是否正确填充。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;
}
};
}
有什么想法吗?
您需要告诉JTable,模型中的数据已经通过触发适当的事件进行了更新。
看这个教程
将对象与引用变量混淆是初学者的常见谬误,但您需要了解它们是非常不同的。当你称之为:
table = new JTable(dataVector, columnNamesVector) {.....
您正在创建一个新的JTable对象并让table变量引用它,但这对GUI显示的JTable对象(表变量之前引用的对象)没有影响。因此,您正在更改引用变量的属性,但保持原始对象不变。
解决方案:您不应该创建新的JTable,而是应该创建一个新的TableModel,然后将该TableModel放入现有的可视化JTable中。您可以通过对表格调用< code>setModel(newModel)来更改表格的模型。
编辑:或者正如沃尔夫卡斯尔所指出的,您可以更新现有的TableModel,而不是重新创建一个。
问题内容: 我对/ 有问题。我的数据表未刷新/更新。我正在使用,根据代码,一切都很好,并且没有任何错误。我也有一个带有分页的表,这就是为什么我使用动作监听器和按钮“上一个”和“下一个”的原因。我正在从其他函数传递到在is中的类中编码的函数 。问题是我填充了包含表数据的数组,但是表不会更新/刷新它。这是我的代码。谢谢前进。 大编辑 旧代码已删除。我添加了新代码,可以帮助您了解我的问题。希望这会有所帮
我找到了更新数据的示例,但它使用了DefaultTableModel。当我创建自己的TableModel和自己的data类时,当我将数据添加到JTable中时,它不会更新。 有我的桌子模型: 当我添加了任何信息,但它没有更新。在JTable中,我必须把这个方法放在哪里来进行正确的数据更新?
这个问题可能已经得到了回答,我读过很多类似的,但对我不起作用。因此,我的具有扩展的自定义表模型。我的数据是和列名。那么,当我的数据发生更改时,如何更新表呢?我一直在使用,它正在工作,但它将我的自定义单元格呈现器重置为默认值。谢了。
我现在迷路了。
我试图让我的JTable显示对扩展AbstractTableModel的TableModel所做的更改。我创建了一个堆来插入所有文档,然后在我的堆数组上应用了一个堆排序,所以这个有序的数组应该是我的TableModel数据。它看起来是这样的: 在方法中,当我调用时,堆内部数组将被销毁,它返回一个和有序节点。因此,当有一个带有节点的有序数组时,我的JTable不会显示数据。现在,如果我不执行,而是从
我正在处理的程序包含两个类,GUI和DatabaseHelper。使用的表模型是DefaultTableModel。 GUI包含一个简单的JTable。它在启动时使用来自DatabaseHelper的数据初始化。这管用。 然而,当尝试将新数据加载到表中时,就不是那么直接了当了。 到目前为止,我的做法是: 现在发生的情况是,加载的数据被附加到已经存在的JTable上。 如果可能的话,我希望实现一个仅