gpt4 book ai didi

java - SwingUtilities invokeLater 的主要目的

转载 作者:行者123 更新时间:2023-11-29 07:46:53 24 4
gpt4 key购买 nike

我有这段代码

import javax.swing.SwingUtilities;

public class Client1 {

public static void main( String[] args ) {

SwingUtilities.invokeLater( new Runnable() {
public void run() {
//new MyWindow( "Bayog" );
new MyWindowV2( "Bayog" );
}
} );
}
}

如果我不使用 SwingUtilities 有什么区别?

最佳答案

假设 run 方法中的代码修改了一个 UI 元素。如果您尝试从非 UI 线程执行该代码,它将失败:所有 UI 操作都必须在 UI 线程(又名事件调度线程)中执行。

SwingUtilities.invokeLater 允许您说“运行这段代码,但在 UI 线程中执行”。因此,它非常适合仍想更新 UI 的后台线程。另一种选择是使用 SwingWorker ,但这并不总是合适的,因为它要求“知道”它需要使用 UI 线程的代码是设置后台线程的代码。

参见 Swing Threading Tutorial了解更多详情。

关于java - SwingUtilities invokeLater 的主要目的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24978799/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com