gpt4 book ai didi

java - jtable更新数据不可见

转载 作者:行者123 更新时间:2023-12-01 19:03:19 26 4
gpt4 key购买 nike

我遇到了一个与我在这里读到的有关插入数据和添加数据未显示在 jtable 上的问题类似的问题。我尝试过 repaint() 和 revalidate(),但没有成功。

基本上,我有两个类 A 和 B。A 调用 B 类中的函数向表中添加一行数据。这是代码。(顺便说一下,我使用 Netbeans 7.1.2 添加一个表,然后添加一些代码来处理更新。)

public void callUpdateTable(){
DefaultTableModel myModel = (DefaultTableModel)jTable1.getModel();
DateFormat dateFormate = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
Object[] str = new Object[3];
Date date = new Date();

str[0] = dateFormate.format(date);
str[1] = "Robot";
str[2] = "hello";
// myModel.addRow(str);
myModel.insertRow(1, str);
myModel.setValueAt("Hello", 1, 2);
System.out.println("count = " + myModel.getValueAt(1, 2));
jTable1.repaint();
}

有趣的是,在系统打印上,它打印出单元格(1,2)处的值,我设置了该值,但没有显示在表格上。感谢您的帮助。

最佳答案

如果你能写一个SSCCE就最好了这说明了问题。

无需调用repaint()/revalidate()insertRow() 的结果是,模型将通过执行 fireTableRowsInserted() 触发表刷新。

DefaultTableModel 使用具有从零开始的索引的vectorinsertRow() 调用Vector.insertElementAt()如果索引超出范围,则会抛出 ArrayIndexOutOfBoundsException 。

假设您的模型为空,请尝试以下操作:

myModel.insertRow(0, str);

此外,请确保您与 EDT 上的表格进行交互。

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

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