No trasteo nada con Swing, pero tu presentación del artículo me ha obligado a leerlo. Me ha parecido muy interesante.
Gracias
La he modificado así:
public class StaticProperty<V> {
private final Map<ThreadGroup, V> valueMap = new WeakHashMap<>();
public StaticProperty() {
}
public StaticProperty(final V value) {
valueMap.put(Thread.currentThread().getThreadGroup(), value);
}
public synchronized void set(final V value) {
valueMap.put(Thread.currentThread().getThreadGroup(), value);
}
public synchronized V get() {
return valueMap.get(Thread.currentThread().getThreadGroup());
}
}
Y ya no hay Swing de por medio, aunque mantiene todo su interés, en el contexto del artículo.
Un artículo de Alexander Potochkin sobre un asunto complicado de resolver en Swing:
http://weblogs.java.net/blog/alexfromsun/archive/2012/02/09/swing-better-world-static-fields-vs-appcontext
Merece la pena leerlo con atención, aunque pueda ser algo complicado para principiantes en Java.