Java langsam 2D-Leistung - Größenanpassung

8

Ich verwende Windows 7 mit Aero und habe eine sehr schnelle Grafikkarte (Radeon 6870), die ich für Spiele verwende.

Ich habe einige Probleme, wenn ich sehr einfache Programme verändere, die ich mit Java mache. Zum Beispiel macht dieses Programm absolut nichts. Es hat keine Aktion Listener, keine Schleifen. Es ist einfach eine GUI-Schnittstelle mit Tasten.

Größenänderung mit OpenGL-Beschleunigung aus:

[Vollbild anzeigen]

Das Ändern der Größe der Komponenten dauert etwa eine Sekunde. Für mich ist das sehr auffällig.

Größenänderung mit OpenGL-Beschleunigung auf:

Ich habe versucht, die OpenGl-Beschleunigung zu aktivieren, um dieses Problem zu lösen. Ich habe das JAR zusammengestellt und führe es mit java -Dsun.java2d.opengl=true -jar C:\Test.jar aus. Das Ergebnis sind etwas weniger schwarze Bereiche um das Fenster, aber viel mehr Flimmern. Tatsächlich erscheint das Flackern oben im Screenshot grau.

Ist das Problem in einer anderen Software vorhanden?

Nein. Eclipse, Netbeans, Chrome und andere Anwendungen wurden getestet. Keine haben dieses Problem. Daher muss ich schließen, dass es ein Problem mit dem Code geben muss. Verschiedene Leute haben diesen Code ausgeführt und sagten, sie hätten "keine Probleme". Wenn Sie es testen, stellen Sie sicher, dass Sie die Größe des Fensters von der kleinsten zur größten Größe des Bildschirms ändern, während Sie die Maus in einer kreisförmigen Bewegung bewegen.

Code:

%Vor%

Beachten Sie, dass das Problem immer noch ohne diese Zeile vorhanden ist: UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

    
David 13.08.2011, 11:18
quelle

4 Antworten

2

Dieser Trick verbessert die Repaint-Rate in Win7 + Aero: Einstellung resizable auf null und Bereitstellung eines eigenen Resize-Hooks. Es ist nicht perfekt, aber immer noch viel besser .. Überprüfen Sie mein Beispiel:

Ссылка

%Vor%     
s1w 27.09.2011, 21:15
quelle
5

Ich habe das für zwei meiner letzten Java-Programme bemerkt.

Ich habe mir die Konfigurationsdatei von NetBeans angesehen und festgestellt, dass das Folgende die Situation erheblich verbessern würde:

%Vor%

Dies ist das gleiche wie -Dsun.java2d.noddraw=true in der JVM-Befehlszeile.

    
AlexLamSL 06.09.2011 14:34
quelle
0

Wenn Sie es auf Win 7 mit Aero ausführen, ist es ein bekanntes Problem:
Ссылка
Ссылка

    
s1w 27.09.2011 17:53
quelle
-2

Normalerweise kann das Flackern verbessert werden, wenn es nicht mit Doppelpufferung gelöst wird. Sie können es aktivieren, indem Sie für jedes der Panels .setDoubleBuffer (true);

setzen

Um mehr darüber zu erfahren: Ссылка

    
Sammy Guergachi 18.08.2011 00:11
quelle

Tags und Links