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