Also ... mal verständlich:
Das TableModel ist das Gerüst der JTable. Auf dem TableModel baut alles auf.
Was bedeutet, dass die Tabelle auf die Methoden des Models zurückgreift.
Und mit diesen Methoden bestimmst Du das Verhalten Deiner Tabelle.
isCellEditable(int,int) legt also fest, in wieweit die Tabelle editierbar ist oder halt nicht.
Deshalb gibt es ja auch das bekannte Model-View-Controller (MVC) Konzept.
Dadurch ist gewährleistet, dass Du nicht mehr direkt mit der Tabelle kommunizieren musst,
sondern einfach nur mit dem Model arbeitest.
In dem Model kannst Du nunmal alle tabellenrelevanten Informationen ablegen (Headeranzahl, Headernamen, Zeilenanzahl, Spaltenanzahl, etc...).
Diese werden dann automatisch von Deiner Tabelle angewendet, ohne dass Du diese jemals modifiziert hast.
Also nun zwei Beispiele für Deine isCellEditable-Methode:
Annahme 1 - Spalte 1 allein soll editierbar sein:
|
Java Quellcode
|
1
2
3
4
5
6
7
|
public boolean isCellEditable(int row, int col) {
if (col == 1) {
return true;
} else {
return false; // alle anderen sind gesperrt
}
}
|
Annahme 2 - Zelle [45,30] soll gesperrt sein
|
Java Quellcode
|
1
2
3
4
5
6
7
|
public boolean isCellEditable(int row, int col) {
if (row == 45 && col == 30) {
return false;
} else {
return true; // alle anderen sind editierbar
}
}
|
DU musst also über das TableModel bestimmen, wann und wie etwas editierbar ist.
Ich hoffe, es ist jetzt irgendwie verständlich *g*