Ostatnio: nigdy

Darmowe galerie dla serwisów aukcyjnych

CarefulRepaintManager

/**
 * RepaintManager sprawdzający, czy wątek mający dostęp do obiektów Swing, jest
 * do tego uprawniony.
 *
 * @author Tomasz Wasilczyk (www.wasilczyk.pl)
 */
class CarefulRepaintManager extends RepaintManager
{
	protected final boolean crashOnErrors;

	/**
	 * Główny konstruktor.
	 *
	 * @param crashOnErrors czy w przypadku modyfikacji obiektu Swing z
	 * nieuprawnionego wątku, wywołać wyjątek
	 */
	public CarefulRepaintManager(boolean crashOnErrors)
	{
		this.crashOnErrors = crashOnErrors;
	}

	/**
	 * Sprawdzenie, czy bieżący wątek jest uprawniony do modyfikowania obiektów
	 * swing.
	 */
	protected void doThreadCheck()
	{
		if (SwingUtilities.isEventDispatchThread())
			return;
		if (Thread.currentThread().getName().startsWith("Image Fetcher "))
			return;
		
		if (crashOnErrors)
			throw new RuntimeException("Nie wywołano z EventDispatchThread, ale z: " +
				Thread.currentThread().getName());
		else
		{
			System.err.println("Nie wywołano z EventDispatchThread, ale z: " +
				Thread.currentThread().getName());
			Thread.dumpStack();
		}
	}

	@Override public synchronized void addInvalidComponent(JComponent jComponent)
	{
		doThreadCheck();
		super.addInvalidComponent(jComponent);
	}

	@Override public void addDirtyRegion(JComponent c, int x, int y, int w, int h)
	{
		doThreadCheck();
		super.addDirtyRegion(c, x, y, w, h);
	}

	@Override public void addDirtyRegion(Applet applet, int x, int y, int w, int h)
	{
		doThreadCheck();
		super.addDirtyRegion(applet, x, y, w, h);
	}

	@Override public void addDirtyRegion(Window window, int x, int y, int w, int h)
	{
		doThreadCheck();
		super.addDirtyRegion(window, x, y, w, h);
	}
}



instalacja:

RepaintManager.setCurrentManager(new CarefulRepaintManager(true))

Dodaj komentarz

Dodajesz komentarz anonimowo. Zaloguj się.

Dodajesz komentarz anonimowo. Aby komentować pod własnym pseudonimem włącz profil publiczny w ustawieniach.

Autor:
Treść:

Aby przesłać formularz, musisz mieć włączony w przeglądarce Javascript. Jeżeli nie masz, przepisz wspak tekst t7tdlu3vh1:

Wykop

Korzystanie z serwisu oznacza akceptację Regulaminu. Copyright – 1999-2017 INTERIA.PL , wszystkie prawa zastrzeżone.