社区
Java SE
帖子详情
GUI刚开始运行时的线程
ninesunsz
2007-02-06 10:20:08
java的例子都有这段代码SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
},根据说明是如果是applet的程序可能会有影响,如果是桌面运行的话是不是不用加也可以?我们公司来了一个java设计的人,他设计的gui程序都没有这段代码(包括类似功能的),我说这样可能会出问题,他说不会,(这个人据说是gui的高手,还从国外留学回来的)哪位说说看
...全文
199
3
打赏
收藏
GUI刚开始运行时的线程
java的例子都有这段代码SwingUtilities.invokeLater(new Runnable() { public void run() { createAndShowGUI(); } },根据说明是如果是applet的程序可能会有影响,如果是桌面运行的话是不是不用加也可以?我们公司来了一个java设计的人,他设计的gui程序都没有这段代码(包括类似功能的),我说这样可能会出问题,他说不会,(这个人据说是gui的高手,还从国外留学回来的)哪位说说看
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
littlegang
2007-03-18
打赏
举报
回复
mark
期待试验结果
XXKKFF
2007-03-14
打赏
举报
回复
这段代码是使run里面的代码放到事件分发线程里执行
看下面的的例子(从thinking in java里的例子修改过来的)
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.lang.reflect.*;
public class EventThreadFrame extends JFrame {
private JTextField statusField =
new JTextField("Initial Value");
public EventThreadFrame() {
Container cp = getContentPane();
cp.add(statusField, BorderLayout.NORTH);
addWindowListener(new WindowAdapter() {
public void windowOpened(WindowEvent e) {
try { // Simulate initialization overhead
Thread.sleep(2000);
statusField.setText("Initialization complete");
Thread.sleep(2000);
} catch (InterruptedException ex) {
throw new RuntimeException(ex);
}
}
});
}
public static void main (String[] args) {
final EventThreadFrame etf = new EventThreadFrame();
JFrame mainFrame = etf;
mainFrame.pack();
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setLocationRelativeTo(null);
mainFrame.setVisible(true);
// etf.statusField.setText("Application ready");//情况1.
SwingUtilities.invokeLater(new Runnable(){
public void run(){
etf.statusField.setText("Application ready");
}
});//情况2.
/* try{
SwingUtilities.invokeAndWait(new Runnable(){
public void run(){
etf.statusField.setText("Application ready");
}
});
}catch(InterruptedException e){
e.printStackTrace();
}catch(InvocationTargetException e){
e.printStackTrace();
}*///情况3.
System.out.println("Done");
}
}
例子中如果不用SwingUtilities.......,那么main线程和事件分发线程都会修改label的文字
自己试一下三种情况的不同
chaosking
2007-03-14
打赏
举报
回复
我做SWING2年了,主要是桌面,上面的那段代码从来就没加过,从没见出问题。那段代码有可能是为了控制绘图的时候避免出现绘制不完全的情况。
【RT-Thread作品秀】家庭医用多功能检测仪-电路方案
刚
开始进入该
线程
时,先进行SPI的初始化和LPS22HH传感器的初始化,然后每2S调度一次进行获取温度和气压值。 其流程图如下所示。 MAX30102
线程
MAX30102
线程
任务主要是获取血氧和心率值。
刚
进入该
线程
时,先进行IIC的...
张孝祥java就业培训教程(完整版电子书)-书内源码及PPT文档
在
刚
开始的第一章就详细地讲解了Java开发环境的搭建、反编译工具的使用、JDK文档资料的查阅,Java程序的编译、运行过程。在第二章中,全面地讲解Java的基本语法知识,对基本语法的讲解也不是泛泛而谈,而是在其中...
javaSwing羊了羊游戏开发+最全速成
GUI
(含实战)
层次设计:让轻松有乐趣更轻松 从0开始讲解
GUI
组件,带领同学们快速入门
GUI
;再带大家学习
GUI
相关高级部分的知识,比如多媒体、自定义组件、自定义图形;接着结合《羊了羊游戏》实战开发,让学习有乐趣,同时又巩固...
面向对象技术书面作业8 (
GUI
+多
线程
)
面向对象技术书面作业8 (
GUI
+多
线程
) 1.进行
GUI
程序设计的步骤有哪些?各有什么样的功能。 (1)引用需要的包和类。 (2)设置一个顶层的容器。 (3)根据需要为容器设置布局管理器或使用默认布局管理器。 (4)...
GUI
线程
安全详解(三)
继第一和第二篇后,
GUI
线程
安全的原理性内容基本就这些了,如果你是搞学术理论研究的基本就不用继续阅读下面几篇我要继续八卦的内容,下面的内容都是针对具体技术平台的细节问题了。 static void Main(string[] ...
Java SE
62,615
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章