Hallo liebe Java-Gemeinde.
Ich programmiere seit kurzem in Java und bin auch schon recht weit gekommen (glaube ich).
Nur jetzt habe ich definitiv ein Problem, das ich so schnell nicht lösen kann.
Zusammengefasst läuft es wohl auf echte Transparenz des Hintergrundes eines JPanels hinaus.
Mein Applet errechnet ein beliebiges Potentialfeld und einiges mehr und stellt das dann dar.
Bei dem Versuch Partikelanimationen als Overlay mit transparentem Hintergrund einzufügen (ich nutze dazu das JLayeredPane des Applets und füge einer LayeredPane ein JPanel hinzu welches die Animation darstellt).
Mir ist nun Aufgefallen, dass panel.setOpaque(false) wohl leider nur eine Pseudotransparenz darstellt (Foto vom Hintergrund etc.). Dies führt jedoch dazu, dass bei vergrösserter Darstellung der Animation diese ins Stocken gerät, da sie nicht mehr den Aufrufen meines Animationsthreads hinterherkommt (repaint() braucht einfach zu lange, selbst dann wenn nur eine println()-Zeile im paintComponent() steht).
Kommentiere ich setOpaque(false) im Konstruktor aus, läuft alles wesentlich flüssiger nur kann man dann leider nicht mehr den Hintergrund (eine Ebene tiefer in der LayeredPane) sehen.
Wie gesagt es läuft wohl alles auf echte Transparenz für den Hintergrund eines JPanels hinaus. Gibt es dafür praktikablere Lösungen als die noch nicht vollständig implementierte Lösung von Sun mittels AWTUtilities (siehe: http://today.java.net/pub/a/today/2008/03/18/translucent-and-shaped-swing-windows.html) ?
Ich wäre für jede Hilfe dankbar.
MfG EH.
Ich programmiere seit kurzem in Java und bin auch schon recht weit gekommen (glaube ich).
Nur jetzt habe ich definitiv ein Problem, das ich so schnell nicht lösen kann.
Zusammengefasst läuft es wohl auf echte Transparenz des Hintergrundes eines JPanels hinaus.
Mein Applet errechnet ein beliebiges Potentialfeld und einiges mehr und stellt das dann dar.
Bei dem Versuch Partikelanimationen als Overlay mit transparentem Hintergrund einzufügen (ich nutze dazu das JLayeredPane des Applets und füge einer LayeredPane ein JPanel hinzu welches die Animation darstellt).
Mir ist nun Aufgefallen, dass panel.setOpaque(false) wohl leider nur eine Pseudotransparenz darstellt (Foto vom Hintergrund etc.). Dies führt jedoch dazu, dass bei vergrösserter Darstellung der Animation diese ins Stocken gerät, da sie nicht mehr den Aufrufen meines Animationsthreads hinterherkommt (repaint() braucht einfach zu lange, selbst dann wenn nur eine println()-Zeile im paintComponent() steht).
Kommentiere ich setOpaque(false) im Konstruktor aus, läuft alles wesentlich flüssiger nur kann man dann leider nicht mehr den Hintergrund (eine Ebene tiefer in der LayeredPane) sehen.
Wie gesagt es läuft wohl alles auf echte Transparenz für den Hintergrund eines JPanels hinaus. Gibt es dafür praktikablere Lösungen als die noch nicht vollständig implementierte Lösung von Sun mittels AWTUtilities (siehe: http://today.java.net/pub/a/today/2008/03/18/translucent-and-shaped-swing-windows.html) ?
Ich wäre für jede Hilfe dankbar.
MfG EH.