10. marts 2004 - 11:38
Der er
6 kommentarer
Hvordan klares dette problem ved hjælp af en timer??
I en label kaldet label skal jeg have opdateret teksten hver gang at følgende opgave udføres: timer.scheduleAtFixedRate(timeren,0,1000); //udfør 'task.run()' hvert 1000 millisekund startende NU men følgende kode virker ikke, som ellers burde kunne tilføjes: timer.scheduleAtFixedRate(label.setText(timeren.teksten),0,1000)
Annonceindlæg fra DE-CIX
10. marts 2004 - 11:57
#1
Du skal kalde med et objekt ikke med en metode. Du laver en klasse der tager en reference til label i constructor og gemmer den. Så kan den kalde setText på label i run som bliver kørt i interval.
10. marts 2004 - 11:59
#2
Lidt syntaks til dette Arne.... :-)
10. marts 2004 - 12:11
#3
(new Timer()).scheduleAtFixedRate(new MyTimer(label),0,1000); ... class MyTimer extends TimerTask { private JLabel lbl; public MyTimer(JLabel lbl) { super(); this.lbl = lbl; } public void run() { lbl.setText("opdateret"); } }
10. marts 2004 - 12:11
#4
Har du iøvrigt overvejet at bruge javax.swing.Timer i.s.f. java.util.Timer ?
10. marts 2004 - 12:12
#5
Eksempel på det sidste: import javax.swing.*; import java.awt.*; import java.awt.event.*; public class BlackAndWhite extends JFrame implements ActionListener { private static boolean black; public BlackAndWhite() { black = true; getContentPane().setBackground(black ? Color.black : Color.white); setSize(100, 100); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); (new Timer(2000, this)).start(); } public void actionPerformed(ActionEvent evt) { black = !black; getContentPane().setBackground(black ? Color.black : Color.white); } public static void main(String[] args) { BlackAndWhite f = new BlackAndWhite(); f.show(); } }
12. april 2004 - 21:36
#6
OK ?
Kurser inden for grundlæggende programmering