2012-12-20 4 views
8

Mögliche Duplizieren:
How to make a columns in JTable Invisible for Swing Java
How to hide a particlar column in DefaultTableModel from displaying it in table?Ausblenden einer Spalte in JTable

Ich versuche, Daten zu drei Spalten in JTable eingeben, aber ich möchte nur zwei Spalten zeigen. Eigentlich möchte ich die dritte Spalte verstecken, nicht indem ich die Breite auf 0 setze, sondern durch irgendeine andere Methode, bei der ich die Daten aus der versteckten Spalte eines Klickereignisses abrufen kann.

Wie kann ich eine Spalte auf diese Weise ausblenden?

Ich verwende den folgenden Code ein:

try { 
    String Title[]= new String{"a","b","c"}; 
    Object obj= new Object[50][3]; 
    JTable table= new JTable(obj,title); 
    JScrollPane jsp= new JScrollPane(table); 
    add(jsp); 
} catch(Exception ex) { 
    ex.printStackTrace(); 
} 
+2

Mögliches Duplikat von [Wie blende ich eine einzelne Spalte in DefaultTableModel aus der Anzeige in der Tabelle?] (Http://stackoverflow.com/questions/12195973/how-to-hide-a-particlar-column-in-defaulttablemodel -from-display-it-in-table) oder [diese Frage] (http://stackoverflow.com/questions/10088853/could-not-set-the-column-width-to-zero-ie-not-made -column-invisible/10089138 # 10089138) oder [this one] (http://stackoverflow.com/questions/8371328/jtable-hide-and-show-columns) oder .. –

+1

prüfen [SwingX] (http: // swingx.java.net): seine JXTable/TableColumnExt Unterstützung in/sichtbaren Spalten – kleopatra

+0

möglich duplizieren [Wie man eine Spalten in JTable unsichtbar für Swing Java machen] (http://stackoverflow.com/q/1492217/813853). –

Antwort

24

die Spalte Mindest- und Höchstbreite als Null.

table.getColumnModel().getColumn(columnIndex).setMinWidth(0); 
table.getColumnModel().getColumn(columnIndex).setMaxWidth(0); 

Als Link von Andrew Thomson im Kommentarbereich vorgeschlagen, dass Sie auch removeColumn verwenden können.

Von javaDoc;

removeColumn

public void removeColumn(TableColumn aColumn) 

Entfernt aColumn aus dieser Reihe von Spalten der JTable. Hinweis: Mit dieser Methode wird die Datenspalte aus dem Modell nicht entfernt ( ). Es entfernt nur die TableColumn, die für die Anzeige verantwortlich war. Parameter: aColumn - die Table zu

P. S entfernt werden: Aber ich habe persönlich den ersten Ansatz zu verstecken eine Spalte in den JTable verwendet. Danke für die Methode Ich werde versuchen, es von nun an zu verwenden.

+0

@ALJI Mohamed bitte lösche deine Antwort hier, ziemlich korrekt, und ignoriere die falsche Aktion von donw_voter – mKorbel

+1

Ich mag die eingestellte Breite Ansatz. Obwohl ich auch in-resizable machen würde, um zu vermeiden, dass der Benutzer es versehentlich anzeigt: 'table.getColumnModel(). GetColumn (columnIndex) .setResizable (false);' – OLL

+0

Dies hilft besonders, wenn man die ID von 'JTable' bekommt – Francisunoxx