2012-12-20 26 views
8

Eventuali duplicati:
How to make a columns in JTable Invisible for Swing Java
How to hide a particlar column in DefaultTableModel from displaying it in table?nascondere una colonna nella JTable

Sto cercando di inserire i dati a tre colonne in JTable, ma io voglio mostrare solo due colonne. In realtà, voglio nascondere la terza colonna, non impostando la larghezza su 0, ma con qualsiasi altro metodo in cui posso ottenere i dati dalla colonna nascosta su un evento click.

Come nascondere una colonna in questo modo?

Sto usando il seguente codice:

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

Possibile duplicato di [Come nascondere una colonna di particelle in DefaultTableModel dalla sua visualizzazione nella tabella?] (Http://stackoverflow.com/questions/12195973/how-to-hide-a-particlar-column-in-defaulttablemodel -from-display-it-in-table) o [this question] (http://stackoverflow.com/questions/10088853/could-not-set-the-column-width-to-zero-ie-not-made -column-invisible/10089138 # 10089138) o [questo] (http://stackoverflow.com/questions/8371328/jtable-hide-and-show-columns) o .. –

+1

considera [SwingX] (http: // swingx.java.net): il suo supporto JXTable/TableColumnExt nelle colonne/visibile – kleopatra

+0

possibile duplicato [Come creare una colonna in JTable Invisible per Swing Java] (http://stackoverflow.com/q/1492217/813853). –

risposta

24

Impostare il minimo della colonna e la larghezza massima pari a zero.

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

Come collegamento suggerito da Andrew Thomson nella sezione commenti potete anche usare removeColumn.

Da javaDoc;

removeColumn

public void removeColumn(TableColumn aColumn) 

Rimuove aColumn dalla matrice di questa JTable di colonne. Nota: questo metodo fa sì che non rimuova la colonna di dati dal modello; rimuove solo la TableColumn che era responsabile della sua visualizzazione. Parametri: aColumn - il TableColumn per essere rimosso

P.S: Ma io ho usato personalmente il primo approccio per nascondere una colonna nella JTable. Grazie per il metodo removeColumn cercherò di usarlo d'ora in poi.

+0

@ALJI Mohamed, per favore, ripristina qui la tua risposta, abbastanza corretta, e ignora l'azione sbagliata di donw_voter – mKorbel

+1

Mi piace l'approccio della larghezza impostata. Anche se prenderei in considerazione la possibilità di renderlo non ridimensionabile per evitare che l'utente lo mostri accidentalmente: 'table.getColumnModel(). GetColumn (columnIndex) .setResizable (false);' – OLL

+0

Questo in realtà aiuta soprattutto quando si ottiene l'id da 'JTable' – Francisunoxx

Problemi correlati