Thomas Kramer

IT-COW | Juli 2012

Anderer Java-RepaintManager für Beachtung von Swings Single-Thread-Rule in Multithreaded-Anwendungen

By Administrator at Juli 12, 2012 22:43
Filed Under: Java, Studium

In einer Java-Aufgabe des Studiums kam ein spezieller RepaintManager für Java zum Einsatz, der auf Verletzungen der Single-Thread-Rule von Swing mit der Ausgabe von Stack-Traces auf der Konsole reagieren sollte.

 

Der Quellcode dieses RepaintManagers wurde aus Desktop Java Live April 2005 entnommen, benötigt werden die Klassen CheckingRepaintManager, CheckAndLogRepaintManager und eine eigene EDTRuleViolation-Klasse, die von RuntimeException ableitet und einen component-Konstruktor hat.

 

Aktiviert wird der eigene RepaintManager dann mit

 

RepaintManager.setCurrentManager(new CheckAndLogRepaintManager());

 

Wenn man dann ohne invokeLater- oder invokeAndWait-Methode auf grafische Swing-Elemente zugreift bekommt man Verletzungen der Single-Thread-Rule von Swing als Stack-Traces ("EDTRuleViolation") auf der Konsole gemeldet.

 

Ich sehe so direkt keine Copyright-Hinweise in dem PDF, aber ich habe mal davon abgesehen den Quellcode hier zu posten. Der Einsatz in eigenen, auch kommerziellen Projekten ist eigentlich eher unkritisch, da man diese Klassen nur zur Entwicklungszeit benötigt und nicht mit einem Projekt ausliefern wird.

 

Monats-Liste