gpt4 book ai didi

java - AbstractTableModel setValueAt 未在 Jbutton 单击时触发

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:56:48 25 4
gpt4 key购买 nike

我有一个扩展 AbstractTableModel 的自定义 TableModel。

public class IndicatorPropertyTableModel extends AbstractTableModel

我编写的 setValueAt 函数会在您将新值键入可编辑单元格然后移至另一个单元格时适本地触发。我遇到的问题是,对于最后一个可编辑的单元格,用户将立即单击 JButton 继续。这不会触发 setValueAt 函数,因此不会保存数据。有没有一种好方法可以确保当用户在编辑单元格后立即点击按钮时始终存储此值?下面的 setValueAt 函数供需要时引用。

public void setValueAt(Object value, int row, int col) {
if (value == null)
return;
if (col == 0) {
//this.indicatorArguments[row].setIsSelected(value);
} else if (col == 2) {
this.indicatorArguments[row].setValue(value);
}
this.fireTableCellUpdated(row, col);
}

感谢您提供的任何帮助。

最佳答案

我假设你的按钮在 table 外面。

在按钮的事件监听器或操作中,您需要对表格的引用。然后你可以问这张表是否isEditing返回真。那么你会get the current editor并在验证最后一个输入值后调用 stopCellEditing提交值或 cancelCellEditing撤消值。

简而言之:

if(table.isEditing()){
table.getCellEditor().stopCellEditing();
}

将始终提交尚未输入的值。

关于java - AbstractTableModel setValueAt 未在 Jbutton 单击时触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5552351/

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