JTable --> Zellen dürfen nicht editiert werden

RMI_17

Erfahrenes Mitglied
Hallo

Ich habe von einem Beispiel gehört dass wenn man die Inhalte eines JTables ändert diese auch gleich in einer Accessdatenbank aus der die Daten stammen mitändert. Da blicke ich nicht durch!

Naja wie auch immer ich habe einen Workaround gefunden und nun möchte ich die Cellen des JTables so sperren dass diese nicht mehr editierbar sind.

Man muss sie aber noch auswählen können!!

Mfg Rmi
 
Du kannst die Methode
Code:
public boolean isCellEditable(int row, int col){
	 	return false;
	}
ueberschreiben und einfach immer false zurueckliefern lassen.
 
Ich habe eine Klasse in der ist ein Constructor der einen Frame macht und darauf einen Tabel

ich habs mit dieser Methode selber schon probiert aber wo muss ich die hinschreiben damits funktioniert Muss ich den aufbau der Klasse ändern und eine eigene Klasse für den Table machen
 
RMI_17 hat gesagt.:
Ich habe eine Klasse in der ist ein Constructor der einen Frame macht und darauf einen Tabel

ich habs mit dieser Methode selber schon probiert aber wo muss ich die hinschreiben damits funktioniert Muss ich den aufbau der Klasse ändern und eine eigene Klasse für den Table machen

Jep,

so sieht es aus.

Du musst von der klasse JTable erben und die funktion überschreiben mit deiner eigenen ;)

Gruss,

Torsten
 
geht das nicht auch anders?

Kann ich nicht den Doppelklick abfangen
 
Zuletzt bearbeitet:
Wäre auch eine möglichkeit, den mouselistener, welcher am JTable hängt so zu modifizieren.

Ich bin gerade am schauen, ich glaube mich zu erinnern, dass dies auch einfacher über das table-model geht.
 
Aha, hier haben wir es doch:

How can I make table cells uneditable?

Your TableModel must return false from isCellEditable(row, column).

DefaultTableModel always returns true from this method. You need to write a subclass to change this, for example

DefaultTableModel data = new DefaultTableModel(....)
{
public boolean isCellEditable(int row, int column)
{
return <insert condition>;
}
};
(Quelle: http://www.chka.de/swing/table/faq.html)

Wusste doch das es darin lag ;)

Sprich du musst das Table model verändern

Gruss,

Torsten
 
OK Danke werds probieren!!

Meinst du so?

Code:
DefaultTableModel data = new DefaultTableModel()
		{
	    	public boolean isCellEditable(int row, int column)
	    	{
	    		return false;
	    	}
		};
		
		resultTable.setModel(data);
 
Zuletzt bearbeitet:
Also

Ich habs jetzt so probiert aber es funktioniert einfach nicht, das nervt mich heute schon den ganzen Tag MANNNNNNN ICh GEH HIER NOCH DRAUF

kann es sein dass ich noch mehr überschreiben muss als nur das oder ubernimmt er den Rest der einstellungen vom DefaultTableModel?
 
Zurück