gpt4 book ai didi

java - 无法获取正在编辑的单元格的当前值

转载 作者:行者123 更新时间:2023-12-01 13:39:59 25 4
gpt4 key购买 nike

我需要帮助,我对 jtable 更新感到震惊。我已经在最后期限了:(

我有一个 jtable 和保存按钮。表有两列,一列是标签,另一列用于提供值。接受输入的列有文本字段和组合框。当我单击“保存”时,表中的数据应保存在服务器端的一个文件中,并且同一文件是 ftp,并且该文件中的数据显示在同一 jtable 中。

问题是当我编辑一个单元格并让该单元格保持焦点时,该值不会被选取。
如果我从该单元格中删除焦点(通过选择其他不可编辑的单元格),该值就会更新。
/>
经过大量谷歌搜索后,我找到了两个解决方案:
1. jtable.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
2. jtable.getCellEditor().stopCellEditing()

在调用 saveData 之前,我尝试了很多方法以及上述解决方案的多种组合,但没有一个解决方案是永久的。以下解决方案在 80% 的时间内有效。

saveActionPerformed() {
//-----------------
if(jtable.isEditing()){
jtable.getCellEditor().stopCellEditing();
} else {
jtable.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE)<br>
}
//-------------------
saveData(); //save data on server side and ftp the file and display again on screen<br>
}

saveData() {
//should i put opposite functions of above used code in order to put back those properties on the jtable again, for example
dislaydata();
jtable.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE)<br>
}

请让我知道可能的解决方案。非常感谢您提前。对于缩进不良表示诚挚的歉意。

最佳答案

jtable.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE)

创建表时需要执行该语句:

JTable table = new JTable(...);
table.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE)

如果您在 ActionListener 中调用该语句,那就太晚了,因为焦点已经位于保存按钮上。

关于java - 无法获取正在编辑的单元格的当前值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20910983/

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