Erste Spalte eines JTables soll nicht editierbar sein.

Status
Nicht offen für weitere Antworten.

Loooser

Mitglied
Hallo,

also ich hab ja inzwischen, mit eurer Hilfe, einen JTable mit Daten gefüllt.
Jetzt hab ich das Problem, dass eine Spalte der Tabelle nicht editierbar sein darf.
 
Im TableModel gibt es eine Methode "isCellEditable", wenn du dort "false" zurück gibst, ist eine Zelle nicht editierbar (und wenn du true zurückgibst...).
 
gut jetzt hab ichs so:

Code:
public boolean isCellEditable(int rowIndex, int columnIndex) {
	if (0 == rowIndex){
		return false;
	} else {
		return true;
	}
}

Aber welche methode ruft diese jetzt auf???
Oder muss ich die Abfrage selbst in einem Listener einbinden???
Ich verstehs grad nicht so ganz.


Eben...
Kann es sein das ich eine neue Klasse anlegen muss z.b. Model???
Also steht das mal wieder alles im FAQ drin???
 
Kann es sein das ich eine neue Klasse anlegen muss z.b. Model???
Also steht das mal wieder alles im FAQ drin???

Zweimal Ja. Du kannst dir das Leben einfach machen und von DefaulTableModel erben (dann musst du nur diese eine Methode überschreiben), und ein Objekt dieser neuen Klasse übergibst du dann der JTable (welche die Methode aufrufen wird).
 
Hi!

Besser du arbeitest mit Vektoren, sind nen bischen flexibler. Aber du kannst das Array dem Tabellen Modell einfach übergeben. Also :

Code:
        DefaultTableModel model = new DefaultTableModel(daten,spalten);


Die einfachere Lösung wie ich finde ist aber:

Code:
jTable1 = new JTable(daten,Spalten){
      public void isCellEditable(int row, int column){
             if ( 0 == row){
                    return false;
            }
            else{
                 return true;
            }
      }
};

Somit brauchst du nicht extra für eine Methode eine extra Klasse für das Modell schreiben.


Gruß
Tux
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben