`
pyleaf
  • 浏览: 39146 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

线程安全的Swing方法

    博客分类:
  • Java
 
阅读更多

学习swing最头疼的就是要分辨一个操作控件的方法是否是线程安全的,尤其是在看书中的示例代码的时候,总是看到在事件处理线程以外的地方调用swing控件的方法,很是疑惑。

在此记下Java核心技术上卷十四章中列举的常用线程安全的swing方法

 

JTextComponent.setText

JTextArea.insert

JTextArea.append

JTextArea.replaceRange

JComponent.repaint

JComponent.revalidate

 

这意味着可以在任何地方调用这几个方法,除此之外的方法,就需要用SwingUtilities(EventQueue)或SwingWorker类

 

书中只列举了这几个,当然应该还有其他的,如有发现,以后补充

分享到:
评论

相关推荐

    Java开发中的线程安全选择与Swing

    Swing组件和大多数Swing方法并不是线程安全的,这意味着它们只能在事件分发线程(Event Dispatch Thread, EDT)中被安全地访问和修改。如果在非EDT线程中直接操作Swing组件,则可能导致应用程序崩溃或行为异常。 ##...

    JAVA+多线程+swing和awt技术+ 飞机大战+学习Java者

    通过阅读和分析源码,可以了解Java的事件驱动编程、线程同步机制(如synchronized关键字和wait/notify方法),以及如何将GUI组件与业务逻辑结合。此外,也可以锻炼到问题解决和调试技巧,这对于任何编程学习者来说都...

    java作业 简单的摇骰子游戏、使用线程和swing、awt.zip

    简单的摇骰子游戏、使用线程和swing、awt.zip java作业。简单的摇骰子游戏、使用线程和swing、awt.zip java作业。简单的摇骰子游戏、使用线程和swing、awt.zip java作业。简单的摇骰子游戏、使用线程和swing、awt....

    Action是否线程安全

    由于Swing组件不是线程安全的,它们应该在事件调度线程(Event Dispatch Thread, EDT)中处理。因此,`ActionEvent`本身是线程安全的,因为它仅在EDT内部被创建和处理。但是,处理`ActionEvent`时,开发者需要确保不...

    基于swing的多线程聊天室

    【基于Swing的多线程聊天室】是一个Java应用程序,它利用了Swing库来构建图形用户界面(GUI)并采用多线程技术实现多用户之间的实时通信。Swing是Java Standard Edition(Java SE)的一部分,提供了丰富的组件库用于...

    Swing线程的深入理解和SwingWorker基础知识介绍

    首先,我们可以将lookup()方法移到SwingWorker中执行,然后使用`invokeLater()`方法将结果返回到Swing线程中处理。下面是修改后的代码: private void searchButton_actionPerformed(){ outputTA.setText(...

    Swing 线程之SwingUtilities invokeLater docx

    Swing 线程之 SwingUtilities invokeLater Swing 线程模型是 Java 中一个非常...在实际开发中,我们需要注意 Swing 的线程模型,确保所有的 GUI 组件操作都是从 EDT 访问的,并使用 invokeLater 方法来确保线程安全。

    JAVA 开发 Swing与多线程

    总的来说,理解和利用Swing的单线程模型以及`SwingUtilities.invokeLater()`方法是Java GUI编程的关键。正确地在EDT中处理任务和更新组件可以确保界面的响应性和一致性,避免因多线程导致的问题。在编写Swing应用时...

    Swing线程基础经典

    Swing设计遵循单线程模型,确保UI组件的线程安全性和响应性。以下是Swing线程基础的详细说明: 1. **Swing应用程序中的线程** - **初始化线程(Initial Thread)**:这是程序的起点,通常用于设置环境、初始化对象,...

    java Swing 多线程下载器

    Java Swing多线程下载器是一种利用Java Swing库构建的图形用户界面(GUI)应用程序,它具备多线程下载功能,并支持断点续传。这样的工具类似于我们熟知的迅雷下载管理器,允许用户同时下载多个文件,提高下载速度,...

    java多线程+Socket+Swing做的局域网聊天程序

    【标题】"java多线程+Socket+Swing做的局域网聊天程序"涉及的核心知识点主要涵盖Java编程、多线程、网络通信以及图形用户界面设计。以下将详细阐述这些关键概念及其在实现局域网聊天程序中的应用。 **1. Java编程**...

    Java Swing 线程 下雪效果

    通过以上步骤,我们可以在Java Swing中实现一个逼真的下雪效果,同时保持UI的响应性和线程的安全性。这种技能对于开发互动性强、视觉效果丰富的应用程序至关重要,特别是在游戏开发或模拟环境中。了解如何正确地管理...

    JAVASWING多线程产生随机球

    在“JAVASWING多线程产生随机球”的项目中,开发者利用Swing创建了一个互动的应用程序,用户可以通过鼠标点击在界面上生成一个球体,这个球体会以随机的方向和速度在窗口内移动。下面将详细解释这个项目涉及的知识点...

    多线程抢红包带SwingUI

    本项目“多线程抢红包带SwingUI”就是一个很好的实践示例,它结合了Java的Swing库来创建图形用户界面(GUI),使用户可以直观地体验到多线程编程的效果。 首先,我们要理解什么是多线程。在单线程程序中,所有操作...

    基于java swing的多线程电梯调度模拟

    线程内部可能包含电梯的状态管理(如上行、下行、停止)、目的地处理以及与其它线程的同步机制(如wait()和notify()方法)。 接着是"ListFrame.java"。这个名字暗示着它可能是一个Swing的JFrame子类,用于构建用户...

    swing界面socket多线程聊天室

    在本项目中,“swing界面socket多线程聊天室”是一个基于Java Swing的客户端-服务器通信应用,它利用TCP协议来实现实时的聊天功能。这个系统不仅提供了群聊和私聊的功能,还允许用户发送文件,并且具备用户登录与...

    几个swing多线程的例子

    这是因为 Swing 不是线程安全的,如果多个线程同时修改组件状态,可能会引发不可预测的问题。 2. **SwingWorker**: Java 5 引入了 `javax.swing.SwingWorker` 类,它为在后台线程执行计算任务提供了便利。...

    Swing线程的最后讨论 -- 利用异步模型

    【Swing线程的最后讨论 -- 利用异步模型】 Swing框架遵循单线程规则,即所有UI组件在同一时间只能被一个线程访问,通常这个线程就是事件派发线程。这一规则是为了避免多线程环境下的竞态条件和同步问题,确保组件的...

    Swing线程基础.pdf

    Swing线程基础详解 Swing作为Java的图形用户界面库,它的线程管理机制是理解和正确使用Swing的关键。Swing程序中的线程主要包括三种类型:初始化线程、UI事件调度线程(Event Dispatch Thread,简称EDT)以及任务...

    设计滚动字演示线程状态及改变方法

    这个主题“设计滚动字演示线程状态及改变方法”主要涵盖了如何利用Java的多线程特性来实现滚动文字效果,并且管理线程的状态变化。下面我们将详细探讨相关的知识点。 1. **线程基础**: - **线程与进程**:在...

Global site tag (gtag.js) - Google Analytics