Я следовал модели Oracle для реализации AbstractTableModel.
Я сделал это, потому что моя таблица должна содержать 3 столбца, и первым должен быть JCheckBox.
Вот мой код:
public class FestplattenreinigerGraphicalUserInterfaceHomePagePanelTableModel extends AbstractTableModel {
private String[] columnNames = {"Auswahl",
"Dateiname",
"Pfad"};
private Object[][] data = {
{new Boolean(true), "datei.tmp",
"/home/user/tmp"}
};
public int getColumnCount() {
return columnNames.length;
}
public int getRowCount() {
return data.length;
}
public String getColumnName(int col) {
return columnNames[col];
}
public Object getValueAt(int row, int col) {
return data[row][col];
}
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
public boolean isCellEditable(int row, int col) {
if (col == 0) {
return true;
} else {
return false;
}
}
public void setValueAt(Object value, int row, int col) {
data[row][col] = value;
fireTableCellUpdated(row, col);
}
}
Вот мои вопросы:
- Откуда JTable (
new JTable(FestplattenreinigerGraphicalUserInterfaceHomePagePanelTableModel)
) знает имена столбцов и их значения? Поскольку в моей модели AbstractTableModel нет конструктора?! Это потому, что имена столбцов и данные должны называться так, как они есть, и JTable обращается к ним? - Как я могу поместить новые значения в свой JTable? Поскольку имена столбцов и данные являются массивами. Могу ли я заменить их векторами? Если да, то как мне инициализировать эти векторы? В конструкторе в myAbsTableModel?
Я думаю, что найти решение очень просто, но эта обработка таблиц не является для меня тривиальной, поэтому большое спасибо!