InvokeLaterDemo.java
资源名称:Source.rar [点击查看]
上传用户:songled
上传日期:2022-07-14
资源大小:94k
文件大小:1k
源码类别:
进程与线程
开发平台:
Java
- import java.awt.*;
- import java.awt.event.*;
- import javax.swing.*;
- public class InvokeLaterDemo extends Object {
- private static void print(String msg) {
- String name = Thread.currentThread().getName();
- System.out.println(name + ": " + msg);
- }
- public static void main(String[] args) {
- final JLabel label = new JLabel("--------");
- JPanel panel = new JPanel(new FlowLayout());
- panel.add(label);
- JFrame f = new JFrame("InvokeLaterDemo");
- f.setContentPane(panel);
- f.setSize(300, 100);
- f.setVisible(true);
- try {
- print("sleeping for 3 seconds");
- Thread.sleep(3000);
- } catch ( InterruptedException ix ) {
- print("interrupted while sleeping");
- }
- print("creating code block for event thread");
- Runnable setTextRun = new Runnable() {
- public void run() {
- try {
- Thread.sleep(100); // for emphasis
- print("about to do setText()");
- label.setText("New text!");
- } catch ( Exception x ) {
- x.printStackTrace();
- }
- }
- };
- print("about to invokeLater()");
- SwingUtilities.invokeLater(setTextRun);
- print("back from invokeLater()");
- }
- }