Avatar billede alphaleader Nybegynder
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)
Avatar billede arne_v Ekspert
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.
Avatar billede alphaleader Nybegynder
10. marts 2004 - 11:59 #2
Lidt syntaks til dette Arne.... :-)
Avatar billede arne_v Ekspert
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");
    }
}
Avatar billede arne_v Ekspert
10. marts 2004 - 12:11 #4
Har du iøvrigt overvejet at bruge javax.swing.Timer i.s.f. java.util.Timer ?
Avatar billede arne_v Ekspert
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();
  }
}
Avatar billede arne_v Ekspert
12. april 2004 - 21:36 #6
OK ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester