public void setRowIndex(int rowIndex) { if (rowIndex < -1) { throw new IllegalArgumentException(); } if (isUpdated) { updateResultSetIfNeeded(); } int oldIndex = index; index = rowIndex; DataModelListener[] listeners = getDataModelListeners(); if ((oldIndex != index) && (listeners != null)) { Object rowData = null; if (isRowAvailable()) { rowData = getRowData(); } DataModelEvent event = new DataModelEvent(this, index, rowData); for (int i = 0; i < listeners.length; i++) { listeners[i].rowSelected(event); } } }