swingworker处理中间结果的方法(swing项目实例)

技术如何实现SwingWorker的实例化本篇文章给大家分享的是有关如何实现SwingWorker的实例化,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Sw

本文是关于如何实现SwingWorker的实例化。边肖觉得挺实用的,所以分享给大家学习。希望你看完这篇文章能有所收获。我们就不多说了。让我们和边肖一起看看。

SwingWorker示例融合SwingWorker:要使用SwingWorker类,必须首先实现它的一个子类。在子类中,您必须实现构造方法并包含您的长期操作。当实例化SwingWorker的子类时,SwingWorker会创建一个线程,但不会启动它。您必须调用SwingWorker对象的start方法来启动线程,然后start方法将调用您的construct方法。当需要构造方法返回的对象时,可以调用SwingWorker类的get方法。这是一个使用SwingWorker类的例子:

.//在main方法中:finalswingworker worker=newwinworker };worker.start.//在动作事件处理方法中:jooptions pane . showmessagedialog)

当程序的主方法调用start方法时,SwingWorker会启动一个新线程来实例化ExpensiveDialogComponent。主方法还构建了一个由窗口和按钮组成的图形用户界面。当用户单击按钮时,如果需要,程序将阻止,直到创建ExpensiveDialogComponent。然后程序显示一个包含ExpensiveDialogComponent的模式对话框。你可以在MyApplication.java找到整个过程。使用计时器类计时器类通过操作侦听器执行一次或多次操作。创建计时器时,可以指定操作执行的频率,还可以指定计时器的动作事件的侦听器。计时器启动后,将调用操作侦听器的actionPerformed方法来执行操作。计时器侦听器定义的actionPerformed方法将在事件调度线程中调用。这意味着您不必在其中使用invokeLater方法。这是一个使用Timer类实现动画循环的例子:

public class animatoraapplicationtimerextendsjframeimplementsactionlistener public voitstartanimationelse } public voitstoanimationpublic voitaction performed.}

在一个线程中执行所有用户界面代码有一些好处:组件开发人员不必对线程编程有很深的理解;像视点和支架这样的工具包中的所有组件都必须完全支持多线程访问,这使得扩展非常困难,尤其是对于不精通线程编程的开发人员来说。最近的一些工具包,比如SubArctic和IFC,都采用了类似Swing的设计。事件以可预测的顺序调度:由invokeLater排队的可运行对象从鼠标和键盘事件、计时器事件和绘图请求的同一队列中调度。在一些组件完全支持多线程访问的工具包中,变化无常的线程调度器会将组件的更改分散到事件处理过程中。这使得全面测试变得困难甚至不可能。更低的成本:试图小心地将工具包锁定在关键区域需要大量的时间和空间来管理锁。每当在工具包中调用可能在客户端代码中实现的方法时,工具包应该保存其状态并释放所有锁,以便客户端代码可以在必要时获得锁。当控件返回到工具包时,工具包必须重新获得锁并恢复状态。所有应用程序都必须承担这个代价,即使大多数应用程序不需要并发访问图形用户界面。这是SubArcticJavaToolkit对工具包中支持多线程访问问题的描述:我们的基本原则是,在设计和构建多线程应用程序时,必须格外小心,尤其是那些包含GUI组件的应用程序。线程的使用可能具有欺骗性。在许多情况下,它们可以被极度简化,使得设计“专注于单个任务的简单自治实体”成为可能。在某些情况下,它们确实简化了设计和编码。然而,在几乎所有的情况下,它们使调试、测试和维护变得困难,甚至不可能。

无论大多数程序员接受的实践,他们的经验和实践,或者我们用来帮助自己的工具,都不能用来处理不确定性。例如,当bug依赖于时间时,全面测试几乎是不可能的。特别是对于Java来说,一个程序应该运行在很多不同类型机器的操作系统平台上,每个程序都必须在抢占式和非抢占式调度下正常工作。由于这些固有的困难,我们敦促您三思是否绝对有必要使用线程。但是,在某些情况下,有必要使用线程,因此subArctic提供了线程安全的访问机制。本章讨论这种机制以及如何在独立的线程中安全地操作交互树。他们讨论的线程安全机制非常类似于SwingUtilities类提供的invokeLater和invokeAndWait方法。

以上就是如何实现SwingWorker的实例化。边肖认为,一些知识点可能会在我们的日常工作中看到或使用。我希望你能通过这篇文章学到更多的知识。更多详情请关注行业信息渠道。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/157462.html

(0)

相关推荐

  • JavaScript中分号的一些细节

    技术JavaScript中分号的一些细节 JavaScript中分号的一些细节JavaScript 中的分号是可选的,加不加分号主要是个代码风格问题。一种风格是使用分号明确结束语句,即便这些分号不是必需

    礼包 2021年11月5日
  • 对象与类

    技术对象与类 对象与类类:构造对象的模板或蓝图,类构造对象的过程称为创建类的实例
    封装(数据隐藏):将数据和行为组合在一个包里,并对对象使用者隐藏具体实现方式
    对象中的数据称为实例字段,操作数据的过程称

    礼包 2021年10月28日
  • 人保是哪个保险公司的,人保和中保是一家保险公司吗

    技术人保是哪个保险公司的,人保和中保是一家保险公司吗中保和人保不是一家保险公司人保是哪个保险公司的,但同属于一个集团,且中保来自人保旗下。1、中保
    中国人寿保险(集团)公司属国家特大型金融保险企业,总部设在北京,世界50

    生活 2021年10月20日
  • 压测时cpu上不去是代码问题吗(怎么用指令cpu压力测试)

    技术cpu测压shell脚本是什么本篇内容介绍了“cpu测压shell脚本是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有

    攻略 2021年12月17日
  • Java处理Exception的方法有哪些

    技术Java处理Exception的方法有哪些这篇文章主要讲解了“Java处理Exception的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java处理Ex

    攻略 2021年11月30日
  • Spring Cloud Alibaba Nacos Config实例教程

    技术Spring Cloud Alibaba Nacos Config实例教程这篇文章主要讲解了“Spring Cloud Alibaba Nacos Config实例教程”,文中的讲解内容简单清晰,易于学习与理解,下面

    攻略 2021年11月15日