Hej,
Pojawił się kolejny problem do rozwiązania na horyzoncie :) Wydaje się banalny, ale... Tym razem chodzi o zmienianie danych w dodanym już wierszu. Zmiana danych zachodzi z poziomu "kodu", czyli np. przy akcji klawisza. Korzystam z customowego AbstractTableModel'u. Myślałem o przykryciu metody setValueAt, ale nie wiem za bardzo jak... Próbowałem już bawić się rozwinięciami fireTable itd, ale do tej pory bez skutku ;/
To przykładowa tabelka:
A to jej model:
public class Console_TableModel extends AbstractTableModel {
private List<String> columnNames = new ArrayList<String>();
private List<List> data = new ArrayList();
Console_TableModel() {
columnNames.add("Action");
columnNames.add("Count");
columnNames.add("Total");
columnNames.add("X");
columnNames.add("Y");
columnNames.add("Quarter");
columnNames.add("Answer");
columnNames.add("T (ms)");
}
public void addRow(List rowData) {
data.add(rowData);
fireTableRowsInserted(data.size() - 1, data.size() - 1);
}
public void insertRow(int index, List rowData) {
data.add(0, rowData);
fireTableRowsInserted(data.size() - 1, data.size() - 1);
}
public int getColumnCount() {
return columnNames.size();
}
public int getRowCount() {
return data.size();
}
public String getColumnName(int col) {
try {
return columnNames.get(col);
} catch (Exception e) {
return null;
}
}
public Object getValueAt(int row, int col) {
return data.get(row).get(col);
}
public boolean isCellEditable(int row, int col) {
return false;
}
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
}
Będę wdzięczny za podpowiedzi.
Pozdrawiam!