Spalte einer Tabelle ausblenden

Status
Nicht offen für weitere Antworten.

Luma

Bekanntes Mitglied
Hio.
Vielleicht eine blöde Frage, aber wie blende ich Tabellenspalten einer Tabelle aus? Ich hab mit diesem großen

Codekonstrukt (siehe unten) zwar die Größe auf 0 reduzieren können (dann sieht man die Spalte nicht mehr), was aber

mache ich, wenn ich sie wieder einblenden will? Die muss ja dann wieder genauso groß sein wie davor auch.
Wenn’s nicht anders geht als mit der Breite auf 0 stellen muss ich eben die Breite irgendwo anders speichern und dann

wiederherstellen, wenn ich die Spalte wieder einblende…

Hier der Code:
Code:
int i = table.getTableHeader().getColumnModel().getColumnIndex("Spalte 1");
table.getTableHeader().getColumnModel().getColumn(i).setMaxWidth(0);
table.getTableHeader().getColumnModel().getColumn(i).setMinWidth(0);
table.getTableHeader().getColumnModel().getColumn(i).setPreferredWidth(0);

Gruß
Lutz
 
Naja, dass du eben aus deinem Model die entsprechende Spalte entfernst 😉

Allerdings finde ich irgendwie, dass so etwas eher in den View gehört, aber ich weiß da auch keine Methode dafür.
 
Du könntest dein TableModel mit einer Dynamik versehen, die zwischen faktisch vorhandenen und sichtbaren Spalten unterscheidet. Die normalen TableModel Methoden, auf die JTable zugreift biegst du entsprechend um und kannst über eigene zusätzliche Methoden Spalten "unsichtbar" schalten und nen passenden Event abfeuern, damit die JTable davon auch etwas mitbekommt.

Ist die flexibelste Methode eine solche Funktionalität zu implementieren. Dein Ansatz Spalten bis zur Unsichtbarkeit zu verkleinern, ist nicht eben elegant und eher eine Notlösung.
 
Illuvatar hat gesagt.:
Naja, dass du eben aus deinem Model die entsprechende Spalte entfernst 😉

Allerdings finde ich irgendwie, dass so etwas eher in den View gehört, aber ich weiß da auch keine Methode dafür.

Die muss er nicht entfernen. Er muss nur nach außern (über das TableModel-Interface) so tun, als ob.. 😉
Im View muss man dann rein gar nichts ändern. Der View soll ja die Daten des Models anzeigen und sich nicht ums Filtern o.ä. kümmern.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben