homebeaver / SwingSet

try to complete SwingSet3 org.swinglabs.swingx jars 1.6.6 for java 8 and openjdk 17 (Temurin)
GNU Lesser General Public License v2.1
0 stars 0 forks source link

JXTable DTCR_COLORMEMORY_HACK #49

Open homebeaver opened 1 year ago

homebeaver commented 1 year ago

Aufgefalle ist mir das bei InteractiveTestCase org.jdesktop.swingx.decorator.HighlighterIssues.

Der Test interactiveTableCustomCoreRendererColorBasedOnValue sollte die Zellen, die ein 'y' enthalten Rot darstellen.

if (getText().contains("y")) {
  setForeground(Color.RED);
...

Das funktioniert aber nicht. Unten wäre der SOLL-Zustand:

grafik

Nach etwas Recherche stelle ich fest, dass es an dem prop DTCR_COLORMEMORY_HACK liegt, DTCR == DefaultTableCellRenderer

    /**
     * Initializes the table for use.
     * 
     */
    private void init() {
        putClientProperty(USE_DTCR_COLORMEMORY_HACK, Boolean.TRUE);
...

Schaltet man DTCR_COLORMEMORY_HACK aus, so kommt man zu dem unteren Ergebnis.

Allerdings funktionieren dann andere Tests nicht!!! Der Test interactiveTableCustomCoreRendererColor hat ein seltsames Verhalten!!!

DTCR_COLORMEMORY_HACK-TRUE

DTCR_COLORMEMORY_HACK-FALSE