T
The-Savior
Gast
habe folgendes problem:
in einer java-app möchte ich gerne eine grafik (lindenmayer-system welches nur aus linien besteht) schrittweise entwickeln lassen. zwischen den einzelnen ausgabeschritten der linien soll eine kleine pause eingelegt werden, um den schrittweisen aufbau der grafik zu verdeutlichen.
die grafikausgabe in der jcomponent wird in einem eigenen thread durchgeführt, damit der anwender weiterhin menubefehle bzw. dialoge des hauptprogramms aufrufen kann.
soweit so gut
da lindenmayer-systeme sehr schnell aus sehr vielen linien bestehen können (je nach iterations-tiefe) möchte ich die grafik komplett ausgeben lassen, ohne dass jemals ein repaint() der entsprechenden jcomponent ausgeführt wird (ist ja auch standardmäßig so), da die neu hinzukommenden linien die grafik nur erweitern und niemals an irgendeiner stelle ersetzen.
öffnet jetzt der anwender z.b. das menu des hauptprogramms bleiben nach dem schließen natürlich die reste des menus in der jcomponent mit der lindenmayer-grafik erhalten - es wird ja hier kein repaint() durchgeführt.
nun meine frage:
gibt es in java/swing irgendeine möglichkeit diesen effekt zu unterbinden ohne das der jcomponent neu gezeichnet werden muss? meine überlegung war, dass man über der jcomponent so eine art glasspane legt (was ja für jcomponent eigentlich net geht), welche nach JEDEM auftretenden event (außer mouse-motion vielleicht) den inhalt löscht und wieder transparent erscheint, so dass die grafik weiterhin komplett sichtbar ist und sich fleißig weiter entwickeln kann.
danke für eure bemühungen!!
in einer java-app möchte ich gerne eine grafik (lindenmayer-system welches nur aus linien besteht) schrittweise entwickeln lassen. zwischen den einzelnen ausgabeschritten der linien soll eine kleine pause eingelegt werden, um den schrittweisen aufbau der grafik zu verdeutlichen.
die grafikausgabe in der jcomponent wird in einem eigenen thread durchgeführt, damit der anwender weiterhin menubefehle bzw. dialoge des hauptprogramms aufrufen kann.
soweit so gut
da lindenmayer-systeme sehr schnell aus sehr vielen linien bestehen können (je nach iterations-tiefe) möchte ich die grafik komplett ausgeben lassen, ohne dass jemals ein repaint() der entsprechenden jcomponent ausgeführt wird (ist ja auch standardmäßig so), da die neu hinzukommenden linien die grafik nur erweitern und niemals an irgendeiner stelle ersetzen.
öffnet jetzt der anwender z.b. das menu des hauptprogramms bleiben nach dem schließen natürlich die reste des menus in der jcomponent mit der lindenmayer-grafik erhalten - es wird ja hier kein repaint() durchgeführt.
nun meine frage:
gibt es in java/swing irgendeine möglichkeit diesen effekt zu unterbinden ohne das der jcomponent neu gezeichnet werden muss? meine überlegung war, dass man über der jcomponent so eine art glasspane legt (was ja für jcomponent eigentlich net geht), welche nach JEDEM auftretenden event (außer mouse-motion vielleicht) den inhalt löscht und wieder transparent erscheint, so dass die grafik weiterhin komplett sichtbar ist und sich fleißig weiter entwickeln kann.
danke für eure bemühungen!!