# JTable ganze Spalte sperren



## JavaWeissnix (14. Sep 2008)

Hallo !
Ich möchte ein Spalte in meienr JTable sperren, so das der user nichts verändern kann. Ich habe dazu isCellEditable(int row, int column) gefunden. Nur müsste ich hier mittels einer Schleife die Regel für Jede Zelle setzten. Kann ich die Spalte nicht auf einmal komplett sperren ?


----------



## Gast2 (14. Sep 2008)

doch warum nicht??? Spalte 2 Sperren


```
isCellEditable(int row , int col)
{

if(col = 1) return false;
return true;

}
```

kannst auch ne HashMap anlegen und als key deine spalten die du sperren willst....


----------



## w0000t (30. Okt 2008)

Sorry für die banale frage, aber:

Wohin muss dieser code? Muss ich meine eigene Klasse erstellen, welche JTable implementiert und den code in diese klasse reinsetzen?

Danke


----------



## GilbertGrape (30. Okt 2008)

Die Methode gehört ins TableModel. Die musst du dort überschreiben


----------



## Guest (30. Okt 2008)

Ich habe nun eine neue Klasse erstellt und die Methode eingefügt. Die Klasse fordert jedoch, dass ich u.a. auch die Methode getValueAt(int arg0, int arg1); implementiere. Ich wüsste jedoch nicht wie. Kann ich nicht wie. Kann ich nicht die ursprüngliche, originale Methode verwenden?

Weiter im Programm benutz ich u.a. auch tablemodel.addRow(Object[]); bzw. addColumn(String column); Diese müsst ich da ja auch erst noch in mein TableModel implementieren. Geht das nicht einfacher, sodass ich "nur" isCellEditable(boolean wasauchimmer); überschreiben muss?

Grüße


----------



## Guest (30. Okt 2008)

lad idr JXTable runter da ist schon alles für dich gemacht...
Wenn nicht schau dir in der FAW das Tutorial an da ist doch alles beschrieben ein besseres gibt es nicht... und Bsp. sind auch dabei.


----------



## GilbertGrape (30. Okt 2008)

Hallo,

wenn du sonst kein anderes Model brauchst, kannst du auch ne Inline-Implementierung machen und nur isCellEditable überschreiben.

so ungefähr, glaub ich:

```
table.setModel(new DefaultTableModel(){

			@Override
			public boolean isCellEditable(int rowIndex, int columnIndex) {
				//hier das was du brauchst
			}
			
		});
```


----------

