社区
Java SE
帖子详情
方法SwingUtilities.invokeLater()的作用?
shouni
2003-05-21 11:26:52
方法SwingUtilities.invokeLater()的作用?(
...全文
30
1
打赏
收藏
方法SwingUtilities.invokeLater()的作用?
方法SwingUtilities.invokeLater()的作用?(
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yuanmeng163
2003-05-21
打赏
举报
回复
Swing是线程不安全的,也就是说只能从单线程访问Swing组件。Swing单线程设计的结果,使得大多数情况下只能从事件派发线程(事件派发线程是调用paint和update等回调方法的线程,而且还是事件监听器接口中定义的事件处理方法,如actionPerformed方法。)中访问将要在屏幕上绘制的Swing组件。
但是,有时可能需要从事件派发线程以外的线程中更新Swing组件。比如你设计一个查询数据库的程序,当点查询按钮时,可能要执行一段比较耗时,假设你是在按钮的actionPerformed方法中处理查询的,那么这时候按钮一直按下状态,而且在事件处理方法返回之前,其他的事件不能派发。如果在独立的线程上执行象数据库查询等耗时的操作可能更好,这将允许立即更新用户界面和释放事件派发线程去派发别的事件。
SwingUtilities.invokeLater和invokeAndWait就是解决上述问题,它使事件派发线程上的可运行对象排队。当可运行对象排在事件派发队列的队首时,就调用其run方法。也就是允许事件派发线程调用另一个线程中的任意一个代码块。
Swing
线程之
Swing
Utilities
invoke
Later
docx
Swing
线程之
Swing
Utilities
invoke
Later
docx
Swing
线程之
Swing
Utilities
.
invoke
Swing
线程之
Swing
Utilities
.
invoke
Later
解释Java开发Java经验技巧共7页.pdf.zip
简单的排球比赛计分系统,使用Java
Swing
实现
程序创建一个窗口,包含输入分数的文本框、计分按钮、查询按钮、显示比分的文本区域和退出按钮。用户可以通过输入分数进行计分,通过查询按钮查看之前的比分。计分时会根据计分规则更新比分数组和已进行的比赛局数,并在文本区域中显示比分和胜方。查询时根据查询序号在文本区域中显示对应的比分和胜方。程序使用事件监听器实现对按钮点击的响应。最后,通过
Swing
Utilities
.
invoke
Later
方法
确保在正确的线程中运行程序。
基于
Swing
的打砖块游戏的Java程序
程序通过创建Ball、Paddle和Block类来实现游戏的运行逻辑,其中包括球的移动、球与 paddle 的碰撞检测、方块的下落和与 paddle 的碰撞检测等。程序使用了一些多线程技术,如 Ball 类继承自 Thread 类并实现 run
方法
,通过循环更新球的位置和速度。Paddle 和 Block 类也都是继承自 Thread 类并实现 run
方法
,以实现持续更新 paddle 和方块的显示和位置。程序使用了一些事件监听器,如 addKeyListener 监听器来检测键盘事件,以便控制 paddle 的移动。程序还使用了一些
Swing
组件和
方法
来创建和显示游戏窗口、方块和球。程序的入口 main
方法
通过调用
Swing
Utilities
.
invoke
Later
方法
来创建一个线程并运行 BreakBlockGame 类,以避免在主线程中创建和显示
Swing
组件。
基于
swing
的java猜数字游戏代码.zip
java猜数字游戏 上述代码创建了一个简单的猜数字游戏窗口,窗口中包含一个文本标签(instructionLabel),一个文本输入框(inputField),一个按钮(guessButton),以及一个用于显示猜测结果的标签(resultLabel)。 游戏开始时会生成一个1到100之间的随机目标数字,玩家需要在文本输入框中输入猜测的数字,点击按钮进行猜测,游戏会根据猜测的结果给出提示,直到猜对为止。 在main()
方法
中,通过
Swing
Utilities
.
invoke
Later
()
方法
启动主界面,确保界面在事件分派线程(Event Dispatch Thread)中创建和显示。 注意:此示例只是一个简单的演示,没有包括输入验证和错误处理等完整的功能。在实际开发中,可以根据需要对代码进行扩展和优化。
Java SE
62,615
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章