Mon, 21 Aug 2006 16:33:10 +0200

"Zoltan Mozes" <sezoM_natloZ@epam.com>

RE: [Java lista] thread sleep kérdés


tedd függővé az egyik szálat a másiktól.

állítsd meg a hétfőt és amikor a vasárnap - rossz sóval- 
lejár, lökje tovább a hétfő szálat.

wait, notify.


Best Regards,
Zoltán Mózes
Lead SW Test Engineer

EPAM Systems
Budapest office, Hungary (GMT+1)

Office phone:        +36 (1) 327-74-XX
Office fax:            +36 (1) 327-74-20
Mobile phone:       +36 (20) XXX-XXX
E-mail:                 Zoltan Mozes@epam.com

http://www.epam.com

CONFIDENTIALITY CAUTION AND DISCLAIMER
This message is intended only for the use of the individual(s) or 
entity(ies) to which it is addressed and contains information that is 
legally privileged and confidential. If you are not the intended 
recipient, or the person responsible for delivering the message to the 
intended recipient, you are hereby notified that any dissemination, 
distribution or copying of this communication is strictly prohibited. 
All unintended recipients are obliged to delete this message and destroy 
any printed copies.
-----Original Message-----
From: javalist@javasite.bme.hu [mailto:javalist@javasite.bme.hu] 
Sent: Monday, August 21, 2006 4:04 PM
To: javalist@javasite.bme.hu
Subject: [Java lista] thread sleep kérdés

*** Felado: Köteles Ferenc <fecuska@freemail.hu> ***

Sziasztok, új vagyok itt a listán, üdvözlök mindenkit.

Egy olyan swing-es progit csinálgatok, aminek gombnyomásra ki 
kellene
írni valamit (példánkban: "Vasárnap"), majd várni 2 mp-et és 
átírni
valami másra ("Hétfő"). Próbáltam csak a késleltetést és 
a második
kiírást külön szálba tenni, végső kétségbeesésemben 
az első kiírásnak is
csináltam egy külön szálat, de sehogy nem jelenik meg a 
"Vasárnap", a
gomb megnyomása után 2 mp szünet, majd "Hétfő". Ugyanakkor 
konzolon
(System.out.println) minden az elképzelés szerint dolgozik, vagyis a 
GUI
frissítésével lehet probléma. Bemásolom az egész kódot, 
bocs, ha túl
hosszúnak számít. A rendszer debian sarge és sun-féle jdk 
1.4.2.
           

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.lang.Thread.*;

public class Implicit extends JFrame implements ActionListener {
JLabel l;
JPanel p;
MyThread t;
MyThread2 t2;

public static void main(String args[]) throws InterruptedException {
 Implicit i = new Implicit(args);
}


Implicit(String args[]) throws InterruptedException {
 super("Milyen nap van ma?");
 p = new JPanel();
 p.setLayout(new BorderLayout());
 l = new JLabel("", JLabel.CENTER);
 JButton again = new JButton("New try!");
 again.addActionListener(this);
 JButton exit = new JButton("Exit");
 exit.addActionListener(this);
 JPanel bp = new JPanel();
 bp.add(again);
 bp.add(exit);
 Font myfont = new Font("Serif",Font.BOLD,36);
 l.setFont(myfont);
 p.add(l, BorderLayout.CENTER);
 p.add(bp, BorderLayout.SOUTH);
 getContentPane().add(p);
 pack();
 setSize(400, 400);
 setVisible(true);

 t = new MyThread(2000); 
 t2 = new MyThread2(); 
}

 public void actionPerformed(ActionEvent e) {
  if (e.getActionCommand().equals("Exit"))
   System.exit(0);
  else
   nextTry();
 }

 void nextTry() {
  t2.run();
  t.run();
 }

class MyThread extends Thread {
int Ms;
 MyThread(int ms) {
 Ms = ms;
 }
 
 public void run() {
  try {
   sleep(Ms);
   l.setText("Hétfő");
   System.out.println("Hétfő");
  } catch (InterruptedException e) { }
 }
}

class MyThread2 extends Thread {
 MyThread2() { }
 
 public void run() {
   l.setText("Vasárnap");
   System.out.println("Vasárnap");
 }
}
}

-- 
Minden jót,

Feca

----------------------------------------
Softwared by Debian GNU/Linux
Just because you're paranoid, it doesn't
mean they're not out to get you.

Java Felhasznalok Tarsasaga levelezolista
javalist@javasite.bme.hu, http://javasite.bme.hu/javalist 
hun.comp.lang.java