[英]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.