2012-12-20 16 views
8

Powiel możliwe:
How to make a columns in JTable Invisible for Swing Java
How to hide a particlar column in DefaultTableModel from displaying it in table?ukryć kolumnę w JTable

Staram się wprowadzać dane do trzech kolumn w JTable, ale chcę pokazać tylko dwie kolumny. Właściwie chcę ukryć trzecią kolumnę, nie przez ustawienie szerokości na 0, ale przez dowolną inną metodę, w której mogę uzyskać dane z ukrytej kolumny zdarzenia kliknięcia.

Jak mogę ukryć kolumnę w ten sposób?

używam następujący kod:

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

Możliwy duplikat [Jak ukryć konkretną kolumnę w DefaultTableModel przed wyświetleniem jej w tabeli?] (Http://stackoverflow.com/questions/12195973/how-to-hide-a-particlar-column-in-defaulttablemodel -z-wyświetlania-w-tabeli) lub [to pytanie] (http://stackoverflow.com/questions/10088853/could-not-set-the-column-width-to-zero-ie-not-made -wektor-niewidoczny/10089138 # 10089138) lub [ten] (http://stackoverflow.com/questions/8371328/jtable-hide-and-show-columns) lub .. –

+1

rozważ [SwingX] (http: // swingx.java.net): obsługa JXTable/TableColumnExt w/widocznych kolumnach – kleopatra

+0

możliwy duplikat [Jak utworzyć kolumny w JTable Invisible dla Swing Java] (http://stackoverflow.com/q/1492217/813853). –

Odpowiedz

24

ustawić minimalną szerokość kolumny i Maximum jako zero.

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

Jako link sugerowany przez Andrew Thomson w sekcji komentarzy można również użyć removeColumn.

Z javaDoc;

removeColumn

public void removeColumn(TableColumn aColumn) 

Usuwa aColumn z tablicy tego JTable za kolumn. Uwaga: ta metoda nie powoduje usunięcia kolumny danych z modelu; po prostu usuwa TableColumn, która była odpowiedzialna za jego wyświetlenie. Parametry: aColumn - w TableColumn zostać usunięte

P.S: Ale ja osobiście używane pierwsze podejście, aby ukryć kolumnę w JTable. Dzięki za metodę removeColumn postaram się z niego korzystać od teraz.

+0

@ALJI Mohamed, proszę, cofnij odpowiedź tutaj, całkiem słusznie, i zignoruj ​​niewłaściwe działanie przez donw_voter – mKorbel

+1

Podoba mi się podejście z ustawioną szerokością. Chociaż rozważałbym także robienie w un-resizable, aby uniknąć przypadkowego pokazania tego przez użytkownika: 'table.getColumnModel(). GetColumn (kolumnaIndex) .setResizable (false);' – OLL

+0

Pomaga to w szczególności przy uzyskiwaniu id z 'JTable' – Francisunoxx