gpt4 book ai didi

Java JTable TableModel addRow 没有变化

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

我遇到的问题不仅仅是问题,希望您能帮助我找到可能的原因。

在一个非常简单的 JTable 中,我使用 DefaultTableModel。我在运行时以编程方式添加一行,如下所示:

public void Update(String neu) {
System.out.println(model.getDataVector());

model.addRow(new String[] {neu});

System.out.println(model.getDataVector());
}

系统打印只是我实现更多功能的调试措施。每当此方法运行时,我实际上都会向 TableModel 添加一些内容(通过 out.prints 证明)

但这种变化并不是永久性的。我既没有看到表中发生变化,也没有看到下次调用 Update 方法时 TableModel 的“新值”部分。

可能是什么原因?

编辑1:遗憾的是,我无法将代码片段制作得足够小,以便在此处发布并包含错误。但是,如果你们能给我一些可能导致上述行为的一般提示,我将非常感激。

编辑2:我在我的代码中构建了一个解决方法。不知何故,问题似乎是由于使用两个不同的框架进行此操作引起的(一个框架用于询问值,第二个框架用于使用并显示该值)

我用 JDialog 替换了一帧,现在 TableModel 可以正确更新。我不知道使用两个框架有什么问题,但至少我的代码再次工作了。感谢您的帮助!

最佳答案

当您更改 tableModel 中的数据时,表不会重新绘制。向表模型添加新行后尝试调用 model.fireTableDataChanged();

编辑:fireTableDataChanged 不会解决您的问题,因为它是自动调用的,如下面的评论中所述。

我看到的另一个问题是您有两个不同的字段/数据模型 - mdlUebersetzungmodel。一种用于登录,一种用于添加行。它是 TableModel 的同一个实例吗?

关于Java JTable TableModel addRow 没有变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28938318/

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