问题标签 [invokelater]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 从 SwingWorker 实时更新 GUI
好的,这是我昨天提出的问题“ SwingWorker 中的错误处理”的后续问题。
考虑到在内部调用可能没问题,我想更进一步,问:在后台线程内部调用也可以吗?SwingUtilities#invokeAndWait()
SwingWorker#doInBackground()
SwingUtilities#invokeLater()
另一个 SSCCE 来说明:
在这个 SSCCE 中,我们正在更新 以DeterminateLoadingFrame
向用户更新正在发生的事情,同时通过publish()
和发布结果process()
。
这似乎与昨天提出的原始问题一样非正统。然而,我无法想出任何理由这不是一个好主意。我们坚持正确的线程策略。并且以这种方式更新 GUI 似乎(对我而言)非常有用且用途广泛。事实上,远不止process()
和publish()
。
进一步:完成 SSCCE 所说明的内容将更难严格使用process()
,publish()
因为您将如何将值传递i
给该process()
方法?
java - 使用swing timers和invokeLater更新Swing组件时如何防止死锁?
如果调用此方法的线程都使用 Swing Timer 或SwingUtilities.invokeLater()
. 我认为没有必要在 Swing Timer 任务中调用 invokeLater() 。
所以我会有一些 Swing 计时器和一些观察者来更新我的组件。观察者都调用invokeLater()
和 Swing Timers 直接调用我的任意方法updateComponents()
。
如果它仍然可以导致死锁,invokeLater()
我会确保不会发生死锁吗?
java - 关于 EDT (Java)
我在互联网上阅读了许多关于何时应该在 EDT 中运行以及何时不应该运行的文章。但是我仍然不确定我是否理解,所以我想问几个问题:
默认情况下,哪些代码将在 EDT内运行?
哪些代码将在 EDT之外默认运行?
我什么时候应该使用 InvokeLater() 这样默认情况下会在 EDT 外部运行的东西会在其中运行?
我什么时候应该通过创建一个新线程并将该代码放入其中来阻止一段代码(默认情况下)在 EDT 内运行?
谢谢
java - Is happens-before relation given in case of invokeLater() or invokeAndWait?
Pretty sure it is this way - but I like to know for sure - is happens-before relation given in case of invokeLater() or invokeAndWait()?
The methods are defined in (SwingUtilities respectively) AWT.EventQueue. I guess there is synchronization involved when something is entered in the EventQueue and hence as result of the synchronization, the happens-before relation and finally the visibility is given.
But is it really that way? (and where can I find that information?)
e.g. inside some worker thread
e.g. inside some thread
java - 摇摆图形用户界面;能够在运行长时间进程时调整窗口大小,但主框架内的面板在进程完成之前不会更新
我试图使用 SwingUtilities.invokelater 来允许我在我的长进程运行时调整程序窗口的大小和移动我的程序窗口。我得到的是我能够移动窗口并调整它的大小,但里面的组件不会更新,例如,如果我将窗口的大小调整为比它开始时更大,我只会得到黑色填充它。
我不太确定哪里出错了,但我觉得这就是我设置面板/框架的方式?任何帮助,将不胜感激。
我的观点:
java - 识别 AWT 线程
我有一个类,它从 Swing 中装饰 JTextComponent。它包含的方法可以从任何线程调用,因此我必须确保与 JTextComponent 一起使用的代码将由 AWT 线程执行。
第二个要求是,调用整个方法的线程将“等待”直到 AWT 线程完成任务。
该代码对我来说运行良好,但仍然存在一个问题。如果任何想要使用我的类的人重命名 AWT 线程,那么它就会陷入僵局。
有什么方法可以明确地识别 AWT 线程并避免这个问题?
谢谢
java - JProgressBar 无法正常工作
所以我JProgressBar
的设置不能按我想要的方式工作。因此,每当我运行程序时,它都会立即从 0 变为 100。我尝试使用 a ProgressMonitor
,一个 Task,并尝试了 aSwingWorker
但我尝试过的没有任何效果。
这是我的程序:
@MadProgrammer 这是我尝试制作一个摇摆工人并将每个名称写入文档并更新进度条的尝试。该程序达到 86% 左右并停止,从未创建完成的文档。该程序创建一个空白文档。这里有两个方法首先是我制作的 SwingWorker 对象:
这是启动它并具有我的属性更改事件的按钮的代码。
我使用了您其他帖子中的属性更改侦听器,但我真的不明白您写的那个是做什么的或它一般做什么?
java - Java Swing 线程安全和 EDT
我知道应该使用 invokeLater 在事件调度线程 (EDT) 上安全地创建 JFrame,并且我正在尝试在我的 main 方法中创建其中两个。
代码:
因此,创建了菜单(这似乎工作正常,因为这里所需的处理非常少)。在此之后,菜单被使用,一个按钮被点击menu.setVisible(false)
被调用。之后,我在 EDT 上排队了一个方法,Simulation 是一个派生自JFrame
. 它的构造函数如下:
该addComponentsToPane()
方法将所有必要的内容添加到 JFrame。在此构造函数之后调用的 run() 方法很简单:
但是,当我运行此代码时,我只看到菜单窗口。当我退出菜单并显示模拟窗口时 - 程序似乎已关闭。
有什么想法我在这里做错了吗?
c# - 如何每 10 毫秒从 Type 运行方法
我正在尝试复制MonoBehaviour
Unity 3D 引擎。我在 Linux 上使用 monodevelop,大多数测试将在 Windows 中完成Unity 3D engine editor
。
更多关于MonoBehaviour.Update
可以在这里阅读
我想在每 10 毫秒Update
继承的所有类型上调用该方法。MonoBehavior
这就是我对 Start 的处理方式
java - 我的 java swing 应用程序 jcomponents 不会绘制,只有在计算完成后才重新绘制?
我有一个语音识别系统,这就是listen(button)
功能
我的结果将是:按钮图标保持不变,并在工作完成后更改系统在工作进行时打印字符串"start speaking..."
recognizer.recognize()
功能:
我试图添加:
但没有用,请帮助我,我想让按钮在计算时更改它的图标图像......