Hi ich habe einen Editor erstellt.
Dort habe ich ein großes Panel (MainPanel).
In diesem MainPanel befinden sich kleine Panels (SmallPanel)
querbet auf dem großen Panel verteilt.
Es ist möglich die Panels sichtbar bzw. unsichtbar zu machen. Dazu packe ich die
Panels in eine Layer die über oder unter dem Layer des MainPanel ist. Funktioniert ja auch gut.
Mein Ziel ist es die SmallPanels blinken zu lassen.
Dazu müsste ich irgendwie sowas machen:
Die GUI soll aber weiterhin bedienbar sein auch wenn die smallPanels blinken.
Leider weiß ich grad nicht so ganz wie ich das realisieren soll.
Ich verstehe einfach nicht so genau was das bedeutet, dass Swing nicht Threadsafe ist.
Ich hatte mir überlegt einen Thread zu starten sobald der User sagt dass die small
Panels blinken sollen. Und dieser Thread macht in etwa das was oben im Pseudocode steht.
Während der Threat nun in der while Schleife ist, soll der Benutzer aber weiter mit der
GUI interagieren können. Irgendwann soll der Benutzer dann sagen, jetzt ist schluss mit blinken.
daraufhin soll die Ausführung des Threads gestoppt werden. Allerdings soll der Benutzer zu jeder Zeit wieder das Blinken starten können.
Kann ich das einfach so machen, dass ich einen Thread erstelle, den starte sobald der Benutzer über einen Button "blinken" wählt. Und wenn der Benutzer auf den "nicht blinken" Button klickt, wird das
flag blink im Thread auf false gesetzt, was dazu führt dass der Thread beendet wird. Klickt der Benutzer wieder auf den "blinken" button, so erstelle ich wieder einen Thread und lasse ihn starten.
Dort habe ich ein großes Panel (MainPanel).
In diesem MainPanel befinden sich kleine Panels (SmallPanel)
querbet auf dem großen Panel verteilt.
Es ist möglich die Panels sichtbar bzw. unsichtbar zu machen. Dazu packe ich die
Panels in eine Layer die über oder unter dem Layer des MainPanel ist. Funktioniert ja auch gut.
Mein Ziel ist es die SmallPanels blinken zu lassen.
Dazu müsste ich irgendwie sowas machen:
Code:
boolean blink = true;
while(blink)
{
mainLayeredPane.setLayer(smallPanel, visibleLayer bzw invisibleLayer);
sleep(2000);
}
Die GUI soll aber weiterhin bedienbar sein auch wenn die smallPanels blinken.
Leider weiß ich grad nicht so ganz wie ich das realisieren soll.
Ich verstehe einfach nicht so genau was das bedeutet, dass Swing nicht Threadsafe ist.
Ich hatte mir überlegt einen Thread zu starten sobald der User sagt dass die small
Panels blinken sollen. Und dieser Thread macht in etwa das was oben im Pseudocode steht.
Während der Threat nun in der while Schleife ist, soll der Benutzer aber weiter mit der
GUI interagieren können. Irgendwann soll der Benutzer dann sagen, jetzt ist schluss mit blinken.
daraufhin soll die Ausführung des Threads gestoppt werden. Allerdings soll der Benutzer zu jeder Zeit wieder das Blinken starten können.
Kann ich das einfach so machen, dass ich einen Thread erstelle, den starte sobald der Benutzer über einen Button "blinken" wählt. Und wenn der Benutzer auf den "nicht blinken" Button klickt, wird das
flag blink im Thread auf false gesetzt, was dazu führt dass der Thread beendet wird. Klickt der Benutzer wieder auf den "blinken" button, so erstelle ich wieder einen Thread und lasse ihn starten.