繁体   English   中英

动态更改失去焦点时的JTable单元格值

[英]Dynamically change JTable cell value at focus lost

我有一个JTable,其单元格编辑器是JTextField,我在代码为的celleditor上调用focuslost

public void focusLost(FocusEvent e)
{
 JTextField textField = new JTextField();
 textField = (JTextField) e.getSource();
 textField.setText(getCurrencyEquivalent(textField.getText()));//read P.S
 table.setValueAt(textField.getText(), table.getEditingRow(), 0);
}

我收到以下异常:

java.lang.ArrayIndexOutOfBoundsException: -1

当我调试时,很明显,焦点实际上是从JTable的单元格丢失后,在cellEditor上触发了focuslost。 这使得table.getEditingRow()始终返回-1,因此在focuslost上动态设置值几乎是不可能的。 如果可以的话,请通过其他任何方法帮助我解决此问题。

PS:getCurrencyEquivalent()是一种以不同的String格式返回给定String的格式化版本的方法。

getCurrencyEquivalent()是一种以不同的String格式返回给定String的格式化版本的方法。

编辑数据时,请勿使用FocusListener尝试更改数据格式。

相反,您应该使用自定义渲染器格式化数据。 查看表格格式渲染器 ,以获取有关如何执行此操作的简单示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM