Swing skalierbare Oberfläche

  • Themenstarter Gelöschtes Mitglied 9001
  • Beginndatum
Status
Nicht offen für weitere Antworten.
G

Gelöschtes Mitglied 9001

Gast
Hallo,

meine Applikation bietet eine skalierbare Oberfläche. D.h., wenn der User das Fenster in der Größe ändert, werden die Elemente nicht neu angeordnet, sondern gezoomt. Das funktioniert alles bereits prima. Nur müssen bei jeder Größenänderung die verwendeten Grafiken auf die neue Größe skaliert/gerendert werden und das braucht relativ viel Zeit, so daß das Ändern der Fenstergröße sehr zäh vonstatten läuft. LiveResizing ist eingeschaltet und ich möchte es ungern ausschalten (zumal es sicht unter MacOS nur mittels Übergabe eines Startparameters ausschalten läßt und nicht mit dem Toolkit).

Ein erster Lösungsversuch bestand darin, bei einer Größenänderung zunächst ein Abbild der Oberfläche als BufferedImage zu erzeugen und vorrübergehend nur dieses Abbild darzustellen. Ein einzelnes Bild läßt sich wesentlich schneller skalieren. Eine halbe Sekunde nach der letzten Größenänderung wird dann das Abbild verworfen und die Originaloberfläche auf die neue Größe skaliert und dargestellt.

Das Problem dabei ist, daß das Erzeugen des Abbildes immer noch recht viel Zeit benötigt, die der Benutzer als deutlich verzögerte Reaktion beim Beginn des Änderns der Fenstergröße wahrnimmt.
Bislang erzeuge ich das Abbild, in dem ich die paint-Methode des Containers aufrufe und ihr das Graphics-Objekt eines BufferedImage übergebe.

Mit dem Robot das Abbild über einen Screenshot zu erzeugen ist nicht wirklich eine Lösung, da Teile des Fenster außerhalb des Bildschirms liegen könnten oder irgendwelche anderen, nicht zum Programm gehörenden Fenster o.ä. über dem Fenster liegen könnten.

Ich habe dann noch versucht, daß das Abbild bereits vor Beginn einer Größenänderung erzeugt wird. Die Strategie war, 1-2 Sekunden nach dem letzten Ereignis, welches zu einer Änderung des grafischen Inhalts führte, ein Abbild zu erzeugen. Hier allerdings fehlte es mir an einer Möglichkeit, eine solche Änderung festzustellen. Man könnte einen Listener erzeugen, dem jedes Element signalisiert, daß es etwas (neues) gezeichnet hat. Dieser Ansatz erscheint mir jedoch nicht flexibel genug.

Hat jemand noch andere Ideen dazu?

Vielen Dank für alle Tipps!
Rajmund
 

Marco13

Top Contributor
Ein grober Ansatzt könnte sein, das skalieren während des Vergrößerns durchzuführen, indem das "übergeornetste" Graphics mit g2d.scale(...) skaliert wird - ist aber wirklich nur ein ganz grober, spontander Gedanke....
 
G

Gelöschtes Mitglied 9001

Gast
Danke für diesen Tipp! Der hat mich schon weiter gebracht.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Skalierbare GUI - 800x600 bis 4K-Ready? AWT, Swing, JavaFX & SWT 3
N Wie kann ich zwei Grafiken in einer Oberfläche anzeigen lassen? AWT, Swing, JavaFX & SWT 8
D Objekte einer Oberfläche in eine Datei/Ordner speichern AWT, Swing, JavaFX & SWT 9
A Oberfläche mit zwei Klassen und actionlistener verbinden AWT, Swing, JavaFX & SWT 7
S Swing Oberfläche rekusiv updaten mit updateUi() AWT, Swing, JavaFX & SWT 10
M LookAndFeel Oberfläche wie Eclipse/Business Objects oder Solvatio AWT, Swing, JavaFX & SWT 2
K Initialisierung von Oberfläche Richtig? AWT, Swing, JavaFX & SWT 5
T Java Swing Oberfläche aktualisiert sich nicht AWT, Swing, JavaFX & SWT 2
K Eclipse-Java Export/Import mit Oberfläche AWT, Swing, JavaFX & SWT 2
D Swing JComponent zeichnen ohne sie zur Oberfläche hinzuzufügen AWT, Swing, JavaFX & SWT 2
J prinzipielles verständnis für Oberfläche/Code-trennung AWT, Swing, JavaFX & SWT 5
T wieso leere Oberfläche? AWT, Swing, JavaFX & SWT 5
S Flickr Bilder in Gui Oberfläche AWT, Swing, JavaFX & SWT 21
cedi Swing Problem mit Grafischer Oberfläche AWT, Swing, JavaFX & SWT 8
E Swing Grafische Oberfläche zur Ordnerauswahl AWT, Swing, JavaFX & SWT 6
Z Component für File-Browser ähnliche Oberfläche AWT, Swing, JavaFX & SWT 6
B Wegfindung - Oberfläche AWT, Swing, JavaFX & SWT 3
P Erste Versuche einer Grafischen Oberfläche AWT, Swing, JavaFX & SWT 8
S AWT Oberfläche integriert sich nicht in GTK-Theme AWT, Swing, JavaFX & SWT 5
Private Void Swing "Vier Gewinnt"-Oberfläche AWT, Swing, JavaFX & SWT 7
L Eigene Design Oberfläche erstellen AWT, Swing, JavaFX & SWT 3
D Mehrere Biler auf einer Oberfläche AWT, Swing, JavaFX & SWT 6
W Oberfläche wird nicht koreckt gezeichnet AWT, Swing, JavaFX & SWT 5
Jenny87 AWT Tic Tac Toe oberfläche AWT, Swing, JavaFX & SWT 20
dl85hej meine erste Oberfläche AWT, Swing, JavaFX & SWT 3
multiholle Oberfläche MP3-Player AWT, Swing, JavaFX & SWT 2
A Oberfläche wir mit html-Frames aufbauen AWT, Swing, JavaFX & SWT 11
C Swing-Oberfläche wird auf einiges PCs nicht korrekt dargeste AWT, Swing, JavaFX & SWT 19
H JAVA Fenster Oberfläche AWT, Swing, JavaFX & SWT 3
L wie kann ich diese Oberfläche bauen ohne das gestreckt wird? AWT, Swing, JavaFX & SWT 18
S In JavaSwing Mailversand mit Oberfläche AWT, Swing, JavaFX & SWT 2
F Wie Oberfläche verbessern? (JButtons, Textfeld verkleinern) AWT, Swing, JavaFX & SWT 5
M Aus Swing Oberfläche Bild erzeugen AWT, Swing, JavaFX & SWT 39
F Zugriff auf Oberfläche bzw Trennung GUI / Logik AWT, Swing, JavaFX & SWT 3
T Problem mit Oberfläche und Thread AWT, Swing, JavaFX & SWT 10
G Ansprechende Java Oberfläche entwickeln AWT, Swing, JavaFX & SWT 10
B Probleme mit Öffnen einer GUI Oberfläche AWT, Swing, JavaFX & SWT 2
I Swing-Oberfläche wird nicht korrekt gezeichnet AWT, Swing, JavaFX & SWT 6
G Oberfläche löschen und neue erstellen AWT, Swing, JavaFX & SWT 4
R RAD Oberfläche für Eclipse gesucht AWT, Swing, JavaFX & SWT 4
G Tooltips auf grafischer Oberfläche AWT, Swing, JavaFX & SWT 2
A Background Image auf SWT Oberfläche legen AWT, Swing, JavaFX & SWT 3
J Anordung der Objekte in der Oberfläche? AWT, Swing, JavaFX & SWT 3
B Oberfläche mit SWT AWT, Swing, JavaFX & SWT 5
S Berechtigungssystem für Swing-Oberfläche AWT, Swing, JavaFX & SWT 2
M Grafische Objekte beliebig auf einer Oberfläche verschieben AWT, Swing, JavaFX & SWT 3
T Eigene grafische Oberfläche AWT, Swing, JavaFX & SWT 7
G JTree in Oberfläche Integrieren?? AWT, Swing, JavaFX & SWT 6
D Trennung von Programm und Oberfläche AWT, Swing, JavaFX & SWT 3
M Java Oberfläche per Drag&Drop -- Wie bei Visual Basic ! AWT, Swing, JavaFX & SWT 5
F Oberfläche wird nicht gestartet! AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen


Oben