gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 05:06:43 28 4
gpt4 key购买 nike

我有一个 JTable,其单元格编辑器是 JTextField,我在单元格编辑器上调用 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 上触发了焦点丢失。这使得 table.getEditingRow() 总是返回 -1,因此在 focuslost 时动态设置值是几乎不可能的。如果有的话,请帮助我通过任何其他技术解决这个问题。

P.S:getCurrencyEquivalent() 是一种以不同字符串格式返回给定字符串的格式化版本的方法。

最佳答案

getCurrencyEquivalent() is a method that returns a formatted version of a given String in a different String format.

不要使用 FocusListener 在编辑数据时尝试更改数据的格式。

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

关于java - 失去焦点时动态更改 JTable 单元格值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27742848/

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