Kasper Ovi <kovi@sol.dk> wrote:
> Hej
>
> Jeg skal bruge en måde hvorpå jeg kan skifte f.eks. en tekststreng ud hvert
> 5. sekund på automatisk vis.
>
> Nogen der kan hjælpe her?
>
Java har hele to indbyggede Timer klasser hhv. javax.swing.Timer og
java.util.Timer. Forskellen på dem, som fremgår af pakke navnene, er
deres typiske brugsmønster, swings til at opdatere UI elementer, så vidt
jeg husker bruger den swings egen (og eneste) event tråd. Utils timer
bruges til at få udført en Runnable på interval, hvor den store fordel
primært består i, at du netop ikke får oprettet en tråd(!), det hele
køre i timerens egen tråd. Jeg går ud fra, at du skal bruge det til
noget UI grej.
I dit tilfælde ville swing udgaven passe perfekt, da du uden de store
problemer kan lave en ActionListener, som kan opdatere din label. F.eks.
JLabel jl = new JLabel(); //Tilføj til noget
//param 1 er tid mellem event afsendelse i millisekunder
javax.swing.Timer t;
t = new javax.swing.Timer(5000, new LabelUpdater(jl));
//Lav evt. en bette inner classe til actions
private class LabelUpdater implements ActionListener
{
private JLabel toUpdate;
public LabelUpdater(JLabel toUpdate)
{
this.toUpdate = toUpdate;
}
public void actionPerformed(ActionEvent ae)
{
//Event er for os ligegyldig, vi ved allerede hvad
//der skal gøres...opdater label
toUpdate.setText("Den tekst du vil opdatere til");
}
}
Se mere om swing timer på
<
http://java.sun.com/docs/books/tutorial/uiswing/misc/timer.html> og
utils timer på
<
http://java.sun.com/j2se/1.4/docs/api/java/util/Timer.html>
--
Mvh/re Jan Jonasen
jonasen (at) it (dot) dk
If I wanted culture, I'd eat yogurt. Ikke kun Tuborg har noget i gære.