gpt4 book ai didi

java - SwingUtilities invokeLater的主要目的

转载 作者:太空宇宙 更新时间:2023-11-04 11:02:48 25 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/46710556/

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