Hallo Java-Profis,
habe kleines Problem: Ich habe eine ziemlich einfache Laufschrift mit einem JLabel realisiert, welche langsam von rechts nach links unten über den Bildschirm läuft. Mittels Timer-Event setze ich dazu alle 20ms ein setBounds(...) mit x=x-1
Bis Java 7 hatte ich keine Probleme, jetzt habe ich einen neuen Rechner mit Java 8 aufgesetzt -> auf einmal ruckelt die Laufschrift total. Es wir nur alle 10 oder 20 Aufrufe mal ein Update angezeigt. Ist aber unregelmäßig.
Ich habe jetzt - als Workaround - das JLabel aus dem GridBag rausgenommen und auf die LayeredPane gelegt. Lustig hier: Solange ich mit der Maus über der Java-Anwendung schwebe, läuft es akkurat, sobald ich die Maus weg-bewege, ruckelt es wieder.
Ich habe als Gegentest mal Java 7 installiert -> einwandfrei, keine Ruckler.
Was wurde von Java 7 auf 8 geändert, das diese Auswirkungen haben kann?
Hier noch ein Code-Schnipsel:
Cheers
Martin
habe kleines Problem: Ich habe eine ziemlich einfache Laufschrift mit einem JLabel realisiert, welche langsam von rechts nach links unten über den Bildschirm läuft. Mittels Timer-Event setze ich dazu alle 20ms ein setBounds(...) mit x=x-1
Bis Java 7 hatte ich keine Probleme, jetzt habe ich einen neuen Rechner mit Java 8 aufgesetzt -> auf einmal ruckelt die Laufschrift total. Es wir nur alle 10 oder 20 Aufrufe mal ein Update angezeigt. Ist aber unregelmäßig.
Ich habe jetzt - als Workaround - das JLabel aus dem GridBag rausgenommen und auf die LayeredPane gelegt. Lustig hier: Solange ich mit der Maus über der Java-Anwendung schwebe, läuft es akkurat, sobald ich die Maus weg-bewege, ruckelt es wieder.
Ich habe als Gegentest mal Java 7 installiert -> einwandfrei, keine Ruckler.
Was wurde von Java 7 auf 8 geändert, das diese Auswirkungen haben kann?
Hier noch ein Code-Schnipsel:
Java:
gTimrMarqee= new Timer();
gTTskMarqee= new TimerTask()
{
public void run()
{
Dimension d= gView.gLablMessage.getPreferredSize();
gView.gLablMessage.setBounds( new Rectangle( gXPos, 3, d.width, d.height ));
gView.revalidate(); // neu eingefügt, damit ist es besser, solange ich mit der Maus im Fenster bin
gXPos-= 1;
if ( gXPos <= gXEnd )
{
gXPos= getBounds().width;
}
}
};
gTimrMarqee.schedule( gTTskMarqee, 0, 20 );
Cheers
Martin
Zuletzt bearbeitet von einem Moderator: