Frage

Info - für eine bessere Formatierung, ich verwendete Code-Formatierung während des gesamten Buchungs

.
Hi,

I have a highlighted JXTable. Rows are highlighted, depending on the value 
of a specific column (c2). Everytime the value of column c2 changes, the color 
is switched from white to grey or from grey to white.

Example    
    c0  c1    c2   c3
    1 | aaa | ab | dd
    2 | aaa | ab | ee
    3 | aaa | cd | ff
    4 | aaa | cd | gg
    5 | bbb | ef | dd

Colors are like this:
1,2 -> white
3,4 -> grey
5   -> white

If I now filter for 'dd', my table looks like this

    c0  c1    c2   c3
    1 | aaa | ab | dd
    5 | bbb | ef | dd

And the colors are like this:
1 -> white
5 -> white

But I want the table to change the color of row 5, because the previous 
value in c2 was different.
See my Problem? How can I apply the highlighter again, on my JXTAble, 
after filtering? Or in other words, how can I highlight only the filtered 
values?
War es hilfreich?

Lösung

Könnten Sie einen zweiten Textmarker hinzufügen?

jxTable.getHighlighters().addHighlighter()

Eine, die sich nur anwenden würde, wenn die JXtable effektiv gefiltert wird.

Wenn das nicht möglich ist, weil einmal eine Zeile markiert ist, wird der andere highlighters kann nicht aufgerufen werden, könnten Sie definiert einen Controller welche:

a) eine propertyChangeListner an den Tisch, für gefilterte Zustand hören

b) hat das besondere Prädikat mit dem Satz von Zeilen und der Textmarker

c) auf die Zeile property überprüfen, schalten Sie das Prädikat des Highlighter zwischen NIE und Ihre benutzerdefinierten als angemessen. Die Eigenschaftsänderung des Highlighter die repaint auslösen

ein Neuzeichnen Erzwingen ist im Grunde, was tut der HighlighterClientVisualCheck Probe im test.org.jdesktop.swingx.renderer Paket.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top