460 import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*; import java.util.*; import java.net.*; public class ThreadTest extends JFrame implements Runnable { private static JLabel label; private static Thread thread; Runnable [] updateTask; public ThreadTest () { label = new JLabel("1"); getContentPane().add(label); thread = new Thread(this); } public void runTask(final int i) { updateTask[i] = new Runnable() { public void run() { System.out.print(i + " "); // label.setText("2"); } }; SwingUtilities.invokeLater(updateTask[i]); } public void run() { updateTask = new Runnable[50]; for (int i = 0; i < 50; i++) runTask(i); System.out.println("ok"); } public static void main(String [] s) { JFrame frame = new ThreadTest(); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0);} }); frame.pack(); frame.setLocation(200, 200); frame.setVisible(true); thread.start(); } } . 0