Java AbstractTableModel setValueAt在单击Jbutton时不触发
我有一个自定义的TableModel,它扩展了AbstractTableModelJava AbstractTableModel setValueAt在单击Jbutton时不触发,java,swing,tablemodel,Java,Swing,Tablemodel,我有一个自定义的TableModel,它扩展了AbstractTableModel public class IndicatorPropertyTableModel extends AbstractTableModel 我编写的setValueAt函数在您在可编辑单元格中键入新值,然后移动到另一个单元格的情况下会正确触发。我遇到的问题是,对于最后一个可编辑的单元格,用户将立即单击JButton继续。这不会触发setValueAt函数,因此不会保存数据。当用户在编辑单元格后立即点击按钮时,是否有
public class IndicatorPropertyTableModel extends AbstractTableModel
我编写的setValueAt函数在您在可编辑单元格中键入新值,然后移动到另一个单元格的情况下会正确触发。我遇到的问题是,对于最后一个可编辑的单元格,用户将立即单击JButton继续。这不会触发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);
}
谢谢您的帮助。我想您的按钮在桌子外面 在按钮的事件侦听器或操作中,您需要表的引用。在这个表中,您可以询问是否返回true。然后,在验证最后一个输入值之后,可以调用提交值或撤消值 简言之:
if(table.isEditing()){
table.getCellEditor().stopCellEditing();
}
将始终提交尚未输入的值。检查表是否正在编辑需要向GUI上的所有按钮添加代码
您可以使用简单的单线解决方案来避免这种情况。退房。您的假设是正确的,按钮在桌子外面。提供的代码工作得非常好。谢谢