Swing Spaltenbreite einer Column eines JTable auslesen

F_Potente

Neues Mitglied
Hey Leute!

Ich habe eine Frage: Ich habe ein JTabel indem meine Daten angezeigt werden. Ich möchte das gerne so haben, dass, wenn die Spaltenbreite der einzelnen Column's geändert werden, die Spaltenbreiten der Spalten in einer Datei gespeichert werden.

Ich habe es bereits hinbekommen, dass die Spaltenbreiten (beim Programmstart) aus einer Datei gelesen werden und diese den 13 Spalten als mitgegeben werden.

Jetzt versuche ich die Spaltenbreite der einzelnen Spalten auszulesen. Ich suche auch schon eine Weile nach einer Lösung, aber ich finde nichts passenden. Ich finde keine Anweisung mit der ich die Breite einer Column in einer laufenden Anwendung abfragen kann.
Code:
JTable table = new JTable(liste); // ein TableModel wird übergeben
table.setAutoCreateRowSorter(true);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
TableColumnModel colMod = table.getColumnModel();

colMod.getColumn(0).setPreferredWidth(30); //funktioniert bei allen 13 spalten
colMod.getColumn(1)...
colMod.getColumn(2)...

int colSize0 = colMod.getColmun(0).getWidth();
int colSize1 = colMod.getColmun(1)...
int colSize2 = colMod.getColmun(2)...

System.out.println("Breite der Spalte 0 :"+colSize0); //es wird 75 ausgegeben

Das ist mein bisheriger Erfolg - jedoch wird für alle 13 Spalten die Breite von 75 ausgegeben.

Ich bin etwas ratlos....
 
Zuletzt bearbeitet:
Moin,
bin mir jetzt auch nicht ganz sicher, aber PreferredWidth ist die bevorzugte Breite und mithin nicht zwingend gleich Width !!
Versuch entweder mal die Breite mit setWidth zu setzen oder aber mit getPreferredWidth abzufragen ...
Gruß Klaus
 
@ Vfl_Freak:

SUPER - dein Tipp funktioniert! getPreferredWidth() liest die Werte richtig aus! Damit hätte ich jetzt nicht gerechnet! Ich danke Dir!

@Victim:

Der ChangeListener ist dann die nächste Aktion! Oder ich speicher das dann manuell!
 

Zurück
Oben