2012-12-19 14 views
7

Ich muss jede zweite Zeile in meiner JTable hervorheben.So markieren Sie jede andere Zeile in JTable mit swingx 1.6

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

aber jetzt, mit SwingX 1.6, Methode setHighlighters() nicht diese Parameter akzeptieren: Mit alter Version von SwingX könnte es wie folgt durchgeführt werden. Es sagt „Die Methode setHighlighters (Highlighter ...) in der Art JXTable für die Argumente nicht anwendbar ist (HighlighterPipeline)“

So, wie ich es mit neuen SwingX tun kann?

+0

Können Sie [preparateRenderer() '] sinnvoll überschreiben (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 - Sie können, aber sollten nicht ;-) JXTable (wie alle SwingX Collection-Komponenten) hat dedizierte Unterstützung für visuelle Zelldekorationen (aka: Textmarker) – kleopatra

+0

@kleopatra: Vielen Dank für die Klärung dieser; Als ich _Farbgedächtnis_ sah, dachte ich sofort an dich. :-) – trashgod

Antwort

6

Um Ihre JXTable Stripping hinzuzufügen, müssen Sie HighlighterFactory verwenden.
Versuchen:

table.addHighlighter(HighlighterFactory.createSimpleStriping()); 

oder:

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

Alternativ, wenn Sie mehrere highlighters hinzufügen möchten, können Sie verwenden:

table.setHighlighters(Highlighter... highlighters); 

immer HighlighterFactory mit Ihrem highlighters zu erstellen.

+1

Brilliant! Das ist eine Lösung, nach der ich gesucht habe! Danke! – Dakarth