import com.codename1.ui.Component; //导入方法依赖的package包/类
/**
* {@inheritDoc}
*/
public final void dataChanged(int row, int column) {
if(row == Integer.MIN_VALUE) {
// special case... Rebuild the table
updateModel();
revalidate();
return;
}
// prevents the table from rebuilding on every text field edit which makes the table
// more usable on iOS devices with the VKB/Native editing
if(editingColumn == column && editingRow == row) {
editingColumn = -1;
editingRow = -1;
return;
}
Object value;
boolean e;
if(row < 0) {
e = false;
value = model.getColumnName(column);
} else {
value = model.getValueAt(row, column);
e = model.isCellEditable(row, column);
}
Component cell = createCellImpl(value, row, column, e);
TableLayout t = (TableLayout)getLayout();
TableLayout.Constraint con = createCellConstraint(value, row, column);
if(includeHeader) {
row++;
}
Component c = t.getComponentAt(row, column);
if(c != null) {
removeComponent(c);
// a repaint sent right before this might result in an artifact for some use cases so
// removing visibility essentially cancels repaints
c.setVisible(false);
}
addComponent(con, cell);
layoutContainer();
cell.requestFocus();
revalidate();
}