gpt4 book ai didi

java - SwingUtilities.invokeLater

转载 作者:IT老高 更新时间:2023-10-28 20:29:04 25 4
gpt4 key购买 nike

我的问题与 SwingUtilities.invokeLater 有关。我应该什么时候使用它?每次需要更新 GUI 组件时都必须使用吗?它究竟是做什么的?是否有替代方案,因为它听起来不直观并且添加了看似不必要的代码?

最佳答案

Do I have to use each time I need to update the GUI components?

不,如果您已经在事件调度线程 (EDT) 上,则不会,这在响应用户发起的事件(例如点击和选择)时总是如此。 (actionPerformed 方法等总是由 EDT 调用。)

如果您不是在 EDT 上但是想要进行 GUI 更新(如果您想从某个计时器线程或某个网络线程等更新 GUI),您将拥有安排由 EDT 执行的更新。这就是这个方法的用途。

Swing 基本上是线程不安全的。即,与该 API 的所有交互都需要在单个线程(EDT)上执行。如果您需要从另一个线程(计时器线程、网络线程...)进行 GUI 更新,您需要使用您提到的方法(SwingUtilities.invokeLater、SwingUtilities.invokeAndWait...)。

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

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