前言
线程和Timer类有些相似,但是Timer类也是在线程上执行执行的。
定时器和事件处理程序运行在同一个事件分发线程(Event Dispatch Thread)上。这就代表了如果这个时间处理需要很长时间,那么定时器的效果其实不好,时间控制就不准确。
所以如果希望占用系统资源较少,就创建定时器;如果希望精确的延时和快速响应,最好使用线程
需求
到目前为止,创建一个框架并使其可见就能够从主方法启动GUI应用程序了,但是如果创建一个GUI应用程序小号了很长时间,那就可能会发生问题,所以为了避免这种情况的发生,应该从事件分发线程中开始GUI的创建。
代码
package P1;
import javax.swing.*;
import java.awt.*;
public class EventDispatchThreadDemo extends JApplet {
public EventDispatchThreadDemo() throws HeadlessException {
add(new JLabel("Hi,it runs from an event dispatch thread"));
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFrame frame=new JFrame("EventDispatchThreadDemo");
frame.add(new EventDispatchThreadDemo());
frame.setSize(300,200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}
小结
该程序是从事件分发线程中就启动了这个框架,虽然占用了系统资源,但是胜在速度够快。
转载:https://blog.csdn.net/qq_43576028/article/details/102487765
查看评论