cost 538 ms
有什么区别吗? SwingWorker#publish 与 SwingUtilities#invokeLater - Is there any difference? SwingWorker#publish vs SwingUtilities#invokeLater

假设我们有一个长期/繁重的任务,必须在后台运行,并将其进度或其他内容发布到 GUI。 我知道这种发布必须发生在事件调度线程上。 这就是我们使用SwingWorker来完成任务的原因。 所以,我们所做的,是这样的: 我的问题是,以上与此有何不同: 在这两种情况下,作为 GUI 更新的labe ...

当有数千个组件时,使 animation 更快 - Make the animation faster when there are thousands of components

我试图用 animation 隐藏一个JSplitPane 。通过隐藏,我的意思是setDividerLocation(0)所以它的左组件是不可见的(技术上它是可见的,但宽度为零): 如果你运行它,会发现一切正常,animation 运行顺利。 然而在实际应用中, JSplitPane右侧是一个带有 ...

从 Java 中的不同线程更新 GUI 的非马虎设计模式 - Non Sloppy design patterns for updating GUI from a different thread in Java

在处理 Java (Swing) 中的其他线程时,哪种设计模式最适合更新 GUI? 例如,想象一个 Object(如自定义 JPanel),其 JList 具有支持它的 DefaultListModel。 一个在 Socket 上监听的线程可以接收数据,然后想要根据来自套接字的信息更新 JList。 ...

代号一:需要访问 UI 的后台线程 - Codename One: Background threads needing access to the UI

我的应用程序有需要访问 UI 的后台线程。 想象一个国际象棋程序 (AI) 在棋盘上下棋之前“思考”了几秒钟。 当线程运行时,UI 被阻止输入,但仍然存在 output。 涉及3个线程: CN1 淡香水思考线程,使用 invokeAndBlock,输出有关搜索过程的信息(在 TextField 中 ...

SwingUtilities InvokeLater- 什么被认为是不好的做法? - SwingUtilities InvokeLater- what is considered bad practice?

我有一个关于使用 SwingUtilities 的 invokeLater 方法的正确做法的问题。 所以首先,我想确认我理解正确。 据我了解,必须在 EDT 上更改 GUI,因为 Swing 组件不是线程安全的。 invokeLater 方法将 Runnable 作为参数,并且该 runnabl ...

在 EDT 中运行时显示 JFreeChart 点的性能问题 - Performance issue displaying JFreeChart points, when running in the EDT

背景: 一个众所周知的 Swing 最佳实践要求是,与 Swing 框架交互的代码也必须在 EDT(事件调度线程)中执行。 因此,我更改了代码,让基于 JFreeChart 的更新在 EDT 中运行。 然而,一个完整的图表显示任务通常需要大约 7 分钟才能在“正常”线程上完成,而在 EDT ...

SwingWorker 未从进程内部更新进度条 - SwingWorker not updating progressbar from inside process

我有一个 Java 8 Swing 应用程序,需要在用户单击新按钮时为其添加一个耗时的操作。 我认为它是SwingWorker的完美用例,尽管我以前从未写过。 完整的源代码和可重现的 Swing 应用程序在这里。 当用户点击一个按钮时,应用程序必须从几个不同的来源收集信息,然后启动这个后台操作。 ...

添加其他项目时无法从另一个线程更新 JProgressBar 的值 - Can't update value of JProgressBar from another thread when adding another items

在向 JPanel 添加另一个组件时,我在显示当前状态(在 JProgressBar 中)时遇到问题。 这个操作很繁重,大约需要 2 秒,20 次迭代(添加 20 个项目)。 但它可以是 100 个项目。 所以我需要实现在JProgressBar中显示每次迭代的当前状态,但我不知道怎么做。 (在我 ...

停止来自EDT的另一个线程(EventQueue) - Stopping another thread from the EDT (EventQueue)

因此,我创建了一个带有停止按钮的基本摆动界面,单击该按钮应停止计数线程。 当应用程序启动时,线程实例将分配一个runnable类,该类进行计数循环并将其记录在控制台中。 在runnable接口中有一种将volatile变量设置为false的方法,该方法基本上应该停止线程,我在停止按钮上调用了 ...

为什么要在EDT线程外调用SwingUtils.invokeAndWait()方法? - Why should SwingUtils.invokeAndWait() method be called outside an EDT thread?

编辑 :我已经引用了这个链接 ,我能够理解InvokeLater的代码流。 我的问题是,为什么这种逻辑以这种方式实现? 有什么具体原因吗? 以下是我的代码: 第一个问题 (使用InvokeAndWait ): 为什么它以在EDT Thread中InvocationTar ...

如何丢弃/合并重复的AWT事件? - How to discard/coalesce repeated AWT events?

当用户执行某些操作(例如单击按钮)时,我需要在JLabel中显示状态。 这种状态需要在2秒后消失。 我使用以下内容。 但是,用户可能会多次单击该按钮,并且会多次触发此计时器。 这具有不良影响。 单击一个按钮3次实例。 第0秒:第1次点击:标签在第2秒消失 第1秒:第2 ...

是否可以从EDT线程在非EDT线程上调用Future.get()? - Is it OK to call Future.get() on a non-EDT thread from the EDT thread?

这是在单元测试的上下文中发生的。 在测试结束时,无论结果如何,我都希望代码检查JFileChooser对话框的存在(可见性)...,如果可见,则将其关闭。 当然,有多种消除对话框的方法,但是为了模仿人类的行为(并在此处举例说明我所关注的问题),我选择使用java.awt.Robot ...

Java Swing使用GUI分离核心 - Java Swing separate core with GUI

我不明白如何将程序的核心与程序的GUI部分分开。 实际上,Web上的所有示例都表示必须使用SwingUtilities.invokeLater()方法执行任何GUI操作。 问题是我不明白如何使用此方法仅处理我的GUI部分以及核心和GUI如何通信。 例如,我有一个类具有一些计算的GU ...

2013-03-11 17:15:13   3   563    java / swing / edt  

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM