2012-12-19 20 views
7

Devo evidenziare ogni altra riga nella mia JTable. Con la vecchia versione di swingx potrebbe essere fatto in questo modo:Come evidenziare ogni altra riga in JTable con swingx 1.6

table.setHighlighters(new HighlighterPipeline(new Highlighter[] { new AlternateRowHighlighter(
      color1, color2,color3 })); 

ma ora, con swingx 1.6, il metodo setHighlighters() non possono accettare tali parametri. Dice "Il metodo setHighlighters (Evidenziatore ...) nel tipo JXTable non è applicabile per gli argomenti (HighlighterPipeline)"

Quindi, come posso farlo con new swingx?

+0

Potete sovrascrivere utilmente ['prepareRenderer()'] (http://www.jarvana.com/jarvana/view/org/swinglabs/swingx-core/1.6.2/swingx-core-1.6.2-javadoc .jar! /org/jdesktop/swingx/JXTable.html#prepareRenderer%28javax.swing.table.TableCellRenderer,%20int,%20int%29) in 'JXTable'? – trashgod

+2

@trashgod: puoi, ma non dovresti ;-) JXTable (come tutti i componenti della collezione SwingX) ha il supporto dedicato per le decorazioni delle celle visive (note: evidenziatori) – kleopatra

+0

@kleopatra: Grazie per aver chiarito questo; quando ho visto _color memory_, ho pensato subito a te. :-) – trashgod

risposta

6

Per aggiungere spogliatura al telefono JXTable è necessario utilizzare HighlighterFactory.
Prova:

table.addHighlighter(HighlighterFactory.createSimpleStriping()); 

o:

table.addHighlighter(HighlighterFactory.createAlternateStriping(Color baseBackground, Color alternateBackground)); 

In alternativa, se si desidera aggiungere più evidenziatori, è possibile utilizzare:

table.setHighlighters(Highlighter... highlighters); 

utilizzando sempre HighlighterFactory per creare i evidenziatori.

+1

Brillante! Questa è una soluzione che stavo cercando! Grazie! – Dakarth

Problemi correlati