Hollo liebe Leute,
ich bin schon am verzweifeln
habe folgendes Problem: ein JLabel in dem ich einfach die abgelaufene Zeit anzeigen möchte wird ständig übermalt wenn ich setText mache.
starte ich das ganze so
bei jedem aufruf wird der Text in meinem Label nicht neu geschrieben sondern drüber. Und man sieht Teile vom alten Text.
WIESO NUR?
wenn ich lblElapsedTime.setText(...) nicht im Timer zig mal nacheinander setze, geht es ohne Problemme. Ich habe schon mit einem Thread versucht. Und die verschiedensten Kombinationen von repaint(), validate(), invalidate(), doLayout() ,revalidate() und updateUI() probiert. Hilft nichts - Ergebniss bleibt gleich : Label wird übermalt und alles wird natürlich immer dunkler.
Woran liegt es? Helft mir bitte.
ich bin schon am verzweifeln

habe folgendes Problem: ein JLabel in dem ich einfach die abgelaufene Zeit anzeigen möchte wird ständig übermalt wenn ich setText mache.
Code:
class Task extends TimerTask
{
public void run()
{
long currentUserElapsedTime = System.currentTimeMillis() - startTime;
try{
userScor.setUserElapsedTime(userElapsedTime + currentUserElapsedTime);
//lblElapsedTime.invalidate();
lblElapsedTime.setText( new java.sql.Time(userElapsedTime + currentUserElapsedTime -3600000).toString());
//lblElapsedTime.invalidate();
//lblElapsedTime.repaint();//validate(); ?
}catch(RemoteException e){
System.out.println("RemoteException, TimerTask");
}
}
}
Code:
Timer timer= new Timer();
// Timer starten nach 1000 ms und dann jede weitere 1000 ms rein ins Task
timer.schedule( new Task(), 1000, 1000 );
WIESO NUR?
wenn ich lblElapsedTime.setText(...) nicht im Timer zig mal nacheinander setze, geht es ohne Problemme. Ich habe schon mit einem Thread versucht. Und die verschiedensten Kombinationen von repaint(), validate(), invalidate(), doLayout() ,revalidate() und updateUI() probiert. Hilft nichts - Ergebniss bleibt gleich : Label wird übermalt und alles wird natürlich immer dunkler.
Woran liegt es? Helft mir bitte.