什么是JTable的任何单元格中的更改的正确事件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是JTable的任何单元格中的更改的正确事件?相关的知识,希望对你有一定的参考价值。

我有一个简单的JTable,有两列很重要:数量和值(整数)。每次用户输入新行或更新一行时,每行值必须乘以数量,结果合在一起,结果总和显示在JTable外部的JLabel中。看起来很简单。除了我不知道我应该寻找什么事件。像“细胞价值变化”之类的东西?当我在NetBeans中右键单击JTable时,我看不到这样的事件或者不认识它;)无论如何,在我想出一些奇怪的noobish解决方案之前,我想我可能会问这里有什么正确的方法:)

答案

你应该添加一个TableModelListener描述here

另外,在你的听众中,一旦你以编程方式更新了其他单元格值的值,你需要调用model.fireTableCellUpdated让swing知道这些变化

另一答案

最后,我设法找到了如何在NetBeans中完成所有代码保护,等等。在“设计视图”,“属性”,“代码”选项卡中右键单击JTable,然后在“预添加代码”部分中添加代码(在将表添加到容器之前评估的代码或类似的东西)。

对我有用的确切代码是:

table.getModel().addTableModelListener(
new TableModelListener() 
{
    public void tableChanged(TableModelEvent evt) 
    {
         // here goes your code "on cell update"
    }
});

我知道上面的Tom建议永远不要调用getModel(),但是我太新了,不能理解为什么(请注意解释,请......?):)这只是一个例子,无论如何,我正在添加这个答案只是为了展示如何在NetBeans中做到这一点(感谢pstanton回答了该怎么做)。因为我发现很多人在网上问这个并没有真正的答案(除了“将受保护的代码复制出NetBeans保护区域然后自定义你的表格”)。

以上是关于什么是JTable的任何单元格中的更改的正确事件?的主要内容,如果未能解决你的问题,请参考以下文章

jtable的问题

在jTable(自动保存)中编辑后,如何将单元格中的数据保存在sql中?

JTable排序不是单元格中的好值

在Jtable单元格中的复选框旁边插入文本

JTable 单元格颜色

如何使 JTable 单元格不可编辑但应该能够选择和复制当前单元格中的值