gpt4 book ai didi

java - 如何删除jtable中的所有行?

转载 作者:行者123 更新时间:2023-12-01 06:31:08 25 4
gpt4 key购买 nike

我在删除表中的所有行时遇到一个问题,我有一个包含 jtable 的 Jpanel,当我选择该行时,它将显示相应的行值,当我单击同一面板上的另一个按钮时意味着它,将重新加载表格,这就是问题,我得到了异常

Exception in thread "AWT-EventQueue-0"

java.lang.ArrayIndexOutOfBoundsException: 0 >= 0
at java.util.Vector.elementAt(Unknown Source)
at javax.swing.table.DefaultTableModel.getValueAt(Unknown Source)
at javax.swing.JTable.getValueAt(Unknown Source)
at Testsample$16.valueChanged(Testsample.java:1516)

我几乎使用所有方法来删除表中的行现在我用这个方法

while (table.getRowCount() > 0) {
((DefaultTableModel) table.getModel()).removeRow(0);
}

注意:当所有控件都相同时,我在这个示例应用程序中使用两个面板,一切正常,如果我在第二个面板中设置表格意味着,它会抛出上述异常,知道如何解决这个问题

最佳答案

您看到的异常来自 Swing 线程 (AWT-EventQueue-0)。发生异常的原因是,当您在其他线程上修改 DefaultTableModel 时,JTable 正在绘制自身(在 Swing 线程上)。

不要这样做!对表模型的所有更改都必须在 Swing 线程上进行。

参见Last word in Swing Threads

使用 EventQueue.invokeLater(new Runnable() {...}); 或类似的东西。

关于java - 如何删除jtable中的所有行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11045547/

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