InvokeAndWaitDemo.java
上传用户:songled
上传日期:2022-07-14
资源大小:94k
文件大小:1k
源码类别:

进程与线程

开发平台:

Java

  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import java.lang.reflect.*;
  4. import javax.swing.*;
  5. public class InvokeAndWaitDemo extends Object {
  6. private static void print(String msg) {
  7. String name = Thread.currentThread().getName();
  8. System.out.println(name + ": " + msg);
  9. }
  10. public static void main(String[] args) {
  11. final JLabel label = new JLabel("--------");
  12. JPanel panel = new JPanel(new FlowLayout());
  13. panel.add(label);
  14. JFrame f = new JFrame("InvokeAndWaitDemo");
  15. f.setContentPane(panel);
  16. f.setSize(300, 100);
  17. f.setVisible(true);
  18. try {
  19. print("sleeping for 3 seconds");
  20. Thread.sleep(3000);
  21. print("creating code block for event thread");
  22. Runnable setTextRun = new Runnable() {
  23. public void run() {
  24. print("about to do setText()");
  25. label.setText("New text!");
  26. }
  27. };
  28. print("about to invokeAndWait()");
  29. SwingUtilities.invokeAndWait(setTextRun);
  30. print("back from invokeAndWait()");
  31. } catch ( InterruptedException ix ) {
  32. print("interrupted while waiting on invokeAndWait()");
  33. } catch ( InvocationTargetException x ) {
  34. print("exception thrown from run()");
  35. }
  36. }
  37. }