`
fansfirst2008
  • 浏览: 97882 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

swing的edt

阅读更多

   知道的越多,不知道的就更多,圆外总是有更大的空间!swing就是这么给我带来的感觉!

   项目中有用到swing,可是知道edt的人,却很少,大都是浮光掠影的了解swing!

   swing编程有两个基本的法则:一,对于时间比较长的任务,应该启动多线程的方式来执行任务。二,对于需要改变swing组件状态的行为,需要在edt里面执行!关于第二点,有两个解决办法,一是用swingutilities类提供的方法,二override swingworker类!这些都是基础知识!

    当前项目中,很好的执行了法则一!而好多代码都在新线程里面直接改变swing组件的状态!

    奇怪现象之一是:在别的线程里面直接改变swing组件状态,并没有引起程序不一致,或者是还没有发现它行为不一致的状态,这让我很迷惑!

   

   

分享到:
评论

相关推荐

    Swing速度慢和反映迟钝原因

    - **多线程利用不足**:由于Swing组件的更新必须在EDT中进行,因此如果不合理地管理耗时任务,会严重影响界面的流畅性。合理地使用多线程技术可以在很大程度上避免这一问题。 #### 解决方案 为了提高Swing应用程序...

    AWT与Swing使用区别

    - **线程操作**:对Swing组件的线程操作需要特别注意,避免在非EDT中直接修改组件状态,应使用`SwingUtilities.invokeLater()`或`invokeAndWait()`来确保操作在EDT中执行。 - **顶级容器**:建议在Swing应用中使用...

    90个java-swing基础例子.zip

    10. **线程管理**:Swing不是线程安全的,所有对Swing组件的修改应在Event Dispatch Thread (EDT)中进行,以避免并发问题。 通过这90个基础例子,你可以逐步了解和掌握如何使用Swing创建组件,布局组件,处理用户...

    javaSwing皮肤大全.rar

    3. 更改LookAndFeel可能会引发UI组件的重新布局,因此在切换皮肤时,应在事件调度线程(Event Dispatch Thread, EDT)中进行。 4. 测试皮肤在不同操作系统和屏幕分辨率下的表现,确保兼容性和可读性。 总之,“java...

    Java Swing桌面开发经典案例

    9. **多线程**:Swing应用程序通常在Event Dispatch Thread(EDT)中运行,理解并发编程对于避免线程安全问题至关重要。 10. **Swing utilities**:如SwingUtilities.invokeLater()用于确保代码在EDT中执行,以及...

    fest-swing文档

    由于Swing是单线程模型,测试时需要确保所有UI操作都在Event Dispatch Thread(EDT)上执行。文档会讲解如何使用`invokeAndWait()`和`invokeLater()`方法来正确处理这一点。 文档中还可能包含关于模拟用户输入和...

    几个swing多线程的例子

    然而,由于 Swing 组件默认在主线程(Event Dispatch Thread, EDT)中运行,如果在处理耗时操作时直接在 EDT 中执行,会导致界面无响应,用户体验下降。因此,多线程在 Swing 应用程序中显得尤为重要。 多线程允许...

    Java Swing 线程 下雪效果

    Java Swing 是Java GUI(图形用户界面)开发的一个重要库,它是Java AWT(Abstract Window Toolkit)的扩展,提供了更丰富的组件和更强大的功能。在Java Swing中创建动态、交互式的应用,线程管理是一个关键的概念。...

    Swing 线程之SwingUtilities invokeLater docx

    Swing 组件是线程不安全的,这意味着只能从事件派发线程(Event Dispatch Thread,简称 EDT)访问将要在屏幕上绘制的 Swing 组件。如果从其他线程访问 Swing 组件,将会导致程序崩溃或出现不可预测的结果。 在上面...

    基于swing的多线程聊天室

    3. Event Dispatch Thread(事件分发线程):Swing是单线程的,所有对组件的操作必须在EDT上进行,以确保界面的同步更新。 二、多线程技术 1. 用户界面线程:主GUI运行在EDT上,负责处理用户输入和显示UI更新。 2. ...

    JAVA 开发 Swing与多线程

    Swing的单线程模型基于"事件派发线程"(Event Dispatch Thread, EDT),所有Swing组件的渲染和事件处理都在这个线程中进行。这是因为GUI组件通常不支持线程安全的操作,多线程环境下可能会导致组件状态的不一致,...

    JavaSwing小程序

    9. **异步编程**:Swing是线程安全的,所有的UI更新必须在Event Dispatch Thread(EDT)上进行,以防止界面冻结。因此,开发者需要理解Swing的并发模型,合理使用SwingWorker进行后台任务处理。 10. **Swing应用程序...

    java+swing聊天室

    通常,GUI更新应该在事件调度线程(Event Dispatch Thread, EDT)上进行,以确保界面的流畅性。而网络通信和数据处理则应在后台线程中完成,以免阻塞UI。 Java Swing还提供了一些高级特性,如布局管理器...

    一个简单Swing窗体

    最后,Swing是线程安全的,所有对组件的修改都应在Event Dispatch Thread (EDT)中进行,以避免线程安全问题。因此,更新界面状态时,通常会使用SwingUtilities的invokeLater或invokeAndWait方法。 总结起来,"一个...

    Java Swing 24种皮肤合集以及使用方法

    由于GUI更新必须在事件派发线程(Event Dispatch Thread,EDT)中进行,所以设置L&F前应确保代码运行在正确的线程。可以使用`SwingUtilities.invokeLater()`来确保这一点: ```java SwingUtilities.invokeLater(...

    swing sample

    9. **线程管理**:Swing不是线程安全的,所有对Swing组件的修改必须在Event Dispatch Thread(EDT)上执行,否则可能会引发错误。因此,通常使用SwingUtilities.invokeLater()或SwingWorker来处理耗时的任务。 通过...

    swing代码,自己测试用

    9. **线程管理**:Swing是线程安全的,所有与UI相关的更新都应在Event Dispatch Thread(EDT)中进行,以防止出现线程冲突。 10. **拖放功能**:Swing支持拖放操作,允许用户通过拖动组件或数据在应用程序中交互。 ...

    Java Swing 2nd Edition

    因此,书中可能详细阐述了Event Dispatch Thread(EDT)的概念,它是Swing执行所有界面更新的单线程,以确保界面操作的同步性和一致性。 最后,作为一本2nd Edition的书籍,作者很可能也讨论了Swing的最新改进和...

Global site tag (gtag.js) - Google Analytics