gpt4 book ai didi

java - JTable 单元格监听器 JAVA

转载 作者:行者123 更新时间:2023-11-30 06:30:49 25 4
gpt4 key购买 nike

需要一些帮助来帮助我了解 jtable 单元监听器。

我的问题是我需要捕获单元格中的更改,当它捕获时,我需要获取旧值和新值。

我问的原因是我正在使用 JTable 和 DefaultTableModel。

我看到了关于此的其他帖子,但是当我尝试实现时,我没有得到任何“字符串”结果,只有序列化结果。

这是我正在使用的:

        table.addPropertyChangeListener(new PropertyChangeListener() {

@Override
public void propertyChange(PropertyChangeEvent evt) {

System.out.println(evt.getOldValue());
System.out.println(evt.getNewValue());
}

});

这就是我得到的:

null
javax.swing.JTable$GenericEditor@4b20aa93
javax.swing.JTable$GenericEditor@4b20aa93
null
null
javax.swing.JTable$GenericEditor@4b20aa93
com.apple.laf.AquaImageFactory$SystemColorProxy[r=255,g=255,b=255]
com.apple.laf.AquaImageFactory$SystemColorProxy[r=0,g=0,b=0]
com.apple.laf.AquaImageFactory$SystemColorProxy[r=9,g=80,b=208]
com.apple.laf.AquaImageFactory$SystemColorProxy[r=202,g=202,b=202]
null
false
com.apple.laf.AquaImageFactory$SystemColorProxy[r=0,g=0,b=0]
com.apple.laf.AquaImageFactory$SystemColorProxy[r=255,g=255,b=255]
com.apple.laf.AquaImageFactory$SystemColorProxy[r=202,g=202,b=202]
com.apple.laf.AquaImageFactory$SystemColorProxy[r=9,g=80,b=208]
false
true
com.apple.laf.AquaImageFactory$SystemColorProxy[r=255,g=255,b=255]
com.apple.laf.AquaImageFactory$SystemColorProxy[r=0,g=0,b=0]
com.apple.laf.AquaImageFactory$SystemColorProxy[r=9,g=80,b=208]
com.apple.laf.AquaImageFactory$SystemColorProxy[r=202,g=202,b=202]
true
false

最佳答案

两种方法。

第一个是自定义 TableModel 并重写 setValueAt(...) 方法。基本代码是:

@Override
public void setValueAt(Object newValue, int row, int column)
{
Object oldValue = getValueAt(row, column);

// do processing with your "oldValue" and the "newValue"

super.setValueAt(...);
}

另一种方法是使用可以添加到任何 TableModel 的“监听器”。对于这种方法,您可以 Table Cell Listener 。每当 oldValue/newValue 发生更改时,此类都会生成一个事件。该事件将使您能够访问这两个值,以便您可以进行处理。

根据您的具体要求,您可以使用任一方法。

关于java - JTable 单元格监听器 JAVA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46170012/

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