gpt4 book ai didi

java - 我应该在 EDT 中创建的线程内调用 InvokeLater 吗?

转载 作者:行者123 更新时间:2023-12-01 22:06:03 25 4
gpt4 key购买 nike

如果我在 edt 中创建的线程中修改我的 gui,会发生什么?

当我说“在 edt 中创建”时,我实际上是说线程声明及其开始位于由以下代码包围的代码块中:

SwingUtilities.invokeLater(new Runnable(){

public void run(){

Thread t= new Thread(new Runnable(){

public void run(){

txtField.setText("setting...");
}
});

t.start();
}
}

这会修改我的 GUI 而不会产生副作用吗?或者我应该在线程“T”内再次调用invokeLater?

最佳答案

是否在 EDT 中实例化并运行线程并不重要。它将是一个新线程,独立于 EDT 运行,因此从中修改 GUI 是不安全的。所有 Swing 修改都必须使用 invokeLater() 完成。

关于java - 我应该在 EDT 中创建的线程内调用 InvokeLater 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32768154/

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