Avatar billede dsj Nybegynder
24. marts 2002 - 14:45 Der er 4 kommentarer og
1 løsning

Simpel tråd - hvordan?

Hej, jeg kører en Frame1 en update-funktion ved tryk på knap, som laver en hulens masse på et ftp-site. Samtidig ville jeg gerne have den til at skrive til - JLabel statusBar; i Frame1, hvad den laver. Jeg ved der skal bruges noget med tråde, men aner ikke hvordan jeg får det til at virke. Den relevante del af programmet ser således ud:

class Frame1 extends JFrame {
  final JLabel statusBar;
  ...
  public void knap1_actionPerformed(ActionEvent e) {
    sitemanager.update(this, ...);
  }
}

class Sitemanager {
  public void update(Frame1 f, ...) {
    f.statusBar.setText("Kopierer filer...");
    copyAll();
    ...
  }

  public void copyAll(); {
    ...
  }
  ...
}

Hvordan får jeg den til (vel gennem en tråd) at køre f.statusbar.setText("..."); ??
Jeg er helt på bar bund. Kører jeg setText() allersidst i metoden update(Frame1 f, ...) virker bliver det udført, men ikke hvis det er i begyndelsen eller midt i.
Avatar billede dsj Nybegynder
24. marts 2002 - 14:50 #1
streg lige "virker" ud i næstsidste linie ;)
Avatar billede greybeard Nybegynder
24. marts 2002 - 19:35 #2
Den klasse der skal starte den nye tråd skal implementere Runnable.
D.v.s den skal have en run() metode.
class Sitemanager implementere Runnable{
  public vois run(){
  //....

Tråden startes med:
        Thread t1 = new Thread(new Sitemanager());
        t1.start();
Da du ikke kan overføre parametre når du starter tråden, kan du f.eks først kalde en metode med parametre, som sætter nogle klassevariable.
Derefter kan din nye tråd bruge disse.

Hvis du ikke har brugt tråde før, skal du være forsigtig.
Prøv at læse noget om samtidighedproblemer og synchronized
Avatar billede greybeard Nybegynder
24. marts 2002 - 19:36 #3
class Sitemanager implementere Runnable{
skal være
class Sitemanager implements Runnable{
Avatar billede dsj Nybegynder
24. marts 2002 - 22:01 #4
:DD

Det virker bare - andet er der ikke at sige til det!

(det skulle da lige være "Tak!")
Avatar billede greybeard Nybegynder
24. marts 2002 - 22:34 #5
Selv tak
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