Swing Spalte in JTable ausblenden

_Andi91

Bekanntes Mitglied
Hi,

habe folgendes Problem. Ich möchte eine (oder mehrere) Spalten einer JTable ausblenden.
Dabei handelt es sich zB um IDs die der User nicht sehen soll, die aber gebraucht werden um den entsprechenden Datensatz auch nach einer Sortierung der Tabelle noch identifizieren zu können.

Bis jetzt hab ich es so gelöst:

tableColumn.setMaxWidth(0);
tableColumn.setMinWidth(0);
tableColumn.setWidth(0);
tableColumn.setPreferredWidth(0);
tableColumn.setResizable(false);

Bei einer Tabelle mit nur 2 Spalten (1 sichtbar andere nicht) kann man einfach rechts am Rand mit der Maus nach links ziehen und man sieht die versteckte Spalte (siehe Anhang).
Bei Tabellen mit mehreren Spalten klappt es manchmal eine versteckte Spalte sichtbar zu machen wenn man zwischen den Spalten klickt und zieht.

Gibt es einen Weg eine Spalte wirklich komplett unsichtbar zu machen?


mfg
 

Anhänge

  • JTable.PNG
    JTable.PNG
    828 Bytes · Aufrufe: 29
Dabei handelt es sich zB um IDs die der User nicht sehen soll, die aber gebraucht werden um den entsprechenden Datensatz auch nach einer Sortierung der Tabelle noch identifizieren zu können.
...
Gibt es einen Weg eine Spalte wirklich komplett unsichtbar zu machen?
Die sauberste Sache ist m. Meinung eine entsprechendes TableModel zu verwenden und gar nicht erst Informationen, die der Anwender nicht sehen soll in einer "ausgeblendeten" TableColumn vorzuhalten.
 
mh hatte eigentlich gehofft die Antwort nicht zu bekommen 🙂
Du hast natürlich Recht. Das Problem ist nur, dass es dabei um eine etwas größere Anwendung geht und das alles entsprechend nachzuziehen wäre zu viel Aufwand.
 
Du nimmst einfach die Spalte die Du nicht sehen willst aus dem Spaltenmodell:
Java:
table.createDefaultColumnsFromModel();
table.setAutoCreateColumnsFromModel(false);
final TableColumnModel columnModel = table.getColumnModel();
columnModel.removeColumn(columnModel.getColumn(1));
Ebenius
 

Neue Themen


Zurück
Oben