AbstractTableModel setValueAt没有触发Jbutton点击
问题描述:
我有一个自定义的TableModel来扩展AbstractTableModel。AbstractTableModel setValueAt没有触发Jbutton点击
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);
}
感谢您提供任何帮助。
答
我假设你的按钮不在桌子上。
在事件监听器或按钮的操作中,您需要引用表。这张表你可以询问isEditing是否返回true。然后,您将get the current editor并验证上一个输入值后,请拨打stopCellEditing提交该值或cancelCellEditing撤消该值。
简而言之:
if(table.isEditing()){
table.getCellEditor().stopCellEditing();
}
将一如既往地致力于尚未输入的值。
你的假设是正确的,按钮不在桌子上。提供的代码完美地工作。谢谢! – Judicator 2011-04-05 14:00:16