JTable - Spaltenbreite

M_Kay

Mitglied
Hi,

das Thema Spaltenbreite wurde hier schon öfters besprochen, aber ich komm nicht klar :D

In meinem Programm ist das so, dass wenn es beendet wird, es sich die Spaltenbreite holt (.getWidth()) und abspeichert.

Beim Starten des Programms möchte ich die Spaltenbreite wieder herstellen. Das funktioniert aber nicht wie gewollt. Wenn ich setPreferredWidth() nehme, dann macht der das zwar annäherungsweise, jedoch nicht direkt die Breite die ich angegeben habe, sondern immer ein bissel kleiner, was nicht gerade sinnvoll ist.

Wenn ich die Tabelle auf AUTO_RESIZE_OFF setze erhalte ich auch kein brauchbares Ergebnis.

Ich hätte gerne, dass der wirklich die Breite nimmt, die ich ihm übergebe, weder mehr noch weniger ;)
Kann mir jemand helfen?

Gruss
M_Kay
 
Hatte das Problem auch schon einmal!
Du musst jede Spalte einzeln angeben, bzw. Speichern.
Ansonsten funktioniert es nicht.



Code:
table.getColumnModel().getColumn(#####).setPreferredWidth(220);
 table.getColumnModel().getColumn(#####).setMinWidth(150);
 table.getColumnModel().getColumn(#####).setMaxWidth(300);



da wo die #### stehen, trägst du die Spaltennummer ein (beginnend bei 0).

Dementsprechend musst du dann auch die Spaltenbreite mit
Code:
table.getColumnModel().getColumn(#####).getWidth()
speichern.

Hoffe es klappt! ;)

MfG
 
Also für jede Spalte ist ja klar :)
In einer Schleife speicher ich die Width-Werte und in einer anderen Schleife setze ich die Breiten wieder (für alle Spalten).
Das mit setMinWidth könnte funktionieren, aber eigentlich soll der Benutzer die Breite ja selbst festlegen, meinetwegen auch so dass man die nicht sieht :)
 
Zuletzt bearbeitet:
Ich ziehe alles zurück. Der Fehler lag bei mir :D
Und zwar wurde beim Abspeichern der Werte hinten etwas abgeschnitten ;)
Jetzt funktioniert alles ganz normal mit setPreferredWidth().
 
Zurück