Hallo,
ich habe eine kleine Laufschrift mit Java programiert. Der Text steht in einem JTextPane und diese wird mit .setLocation(x,y) verschoben. Wenn ich das Programm auf meinem PC laufen lasse, läuft alles wir geplant. Wenn ich die Laufschrift auf dem Zielsystem laufen lasse, schwankt die Geschwindigkeit der Schrift. Auf diesem System läuft noch eine Applikation die Bilder und andere Animationen anzeigt. Diese Animationen laufen auch wie gewohnt gleich schnell, nur die Java Anwendung läuft langsamer, bzw. schwankend, je nachdem wie das andere Programm Rechenleistung braucht. Setzte ich in Windows die Priorität der Laufschrift auf Echtzeit, laufen beide Anwendungen wie gewünscht, nur leider kann ich die Laufschrift schlecht mit der Priorität Echtzeit laufen lassen, da das System stabil sein muss.
Die Bewegung der Laufschrift findet in einer Endlos while Schleife mit einer kleinen Pause statt.
Würde mich freuen wenn Ihr Verbesserungsvorschläge bzw. eine Lösung habt, wie ich beide Anwendungen laufen lassen kann, ohne dass die Laufschrift in unterschiedlichen Geschwindigkeiten läuft.
ich habe eine kleine Laufschrift mit Java programiert. Der Text steht in einem JTextPane und diese wird mit .setLocation(x,y) verschoben. Wenn ich das Programm auf meinem PC laufen lasse, läuft alles wir geplant. Wenn ich die Laufschrift auf dem Zielsystem laufen lasse, schwankt die Geschwindigkeit der Schrift. Auf diesem System läuft noch eine Applikation die Bilder und andere Animationen anzeigt. Diese Animationen laufen auch wie gewohnt gleich schnell, nur die Java Anwendung läuft langsamer, bzw. schwankend, je nachdem wie das andere Programm Rechenleistung braucht. Setzte ich in Windows die Priorität der Laufschrift auf Echtzeit, laufen beide Anwendungen wie gewünscht, nur leider kann ich die Laufschrift schlecht mit der Priorität Echtzeit laufen lassen, da das System stabil sein muss.
Die Bewegung der Laufschrift findet in einer Endlos while Schleife mit einer kleinen Pause statt.
Code:
boolean isRunningOrig = true;
boolean isRunningClone = false;
int TickerSpacer = 100;
TickerText.setLocation(this.getSize().width, TickerText.getLocation().y);
TickerTextClone.setLocation(this.getSize().width, TickerTextClone.getLocation().y);
while(true)
{
try{ Thread.sleep(5); }catch(Exception ex){}
if(isRunningOrig)
{
TickerText.setLocation(TickerText.getLocation().x - 1, TickerText.getLocation().y);
}
if(isRunningClone)
{
TickerTextClone.setLocation(TickerTextClone.getLocation().x - 1, TickerTextClone.getLocation().y);
}
if( TickerText.getLocation().x == ((this.getWidth() - TickerText.getWidth()) - TickerSpacer) )
isRunningClone = true;
if( TickerTextClone.getLocation().x == ((this.getWidth() - TickerTextClone.getWidth()) - TickerSpacer) )
isRunningOrig = true;
if( TickerText.getLocation().x < (TickerText.getSize().width * (-1)) )
{
TickerText.setLocation(this.getSize().width, TickerText.getLocation().y);
isRunningOrig = false;
if( ((TickerText.getWidth() * 2) + TickerSpacer) < this.getWidth() )
isRunningOrig = true;
}
if( TickerTextClone.getLocation().x < (TickerTextClone.getSize().width * (-1)) )
{
TickerTextClone.setLocation(this.getSize().width, TickerTextClone.getLocation().y);
isRunningClone = false;
if( ((TickerText.getWidth() * 2) + TickerSpacer) < this.getWidth() )
isRunningClone = true;
}
this.repaint();
}
Würde mich freuen wenn Ihr Verbesserungsvorschläge bzw. eine Lösung habt, wie ich beide Anwendungen laufen lassen kann, ohne dass die Laufschrift in unterschiedlichen Geschwindigkeiten läuft.