gpt4 book ai didi

java - 了解 Java 事件调度线程中调用的代码范围

转载 作者:行者123 更新时间:2023-12-02 00:36:05 27 4
gpt4 key购买 nike

我试图了解哪些事件将从事件调度线程 (EDT) 进行管理。

让我们假设一些简单的事情,一段简单的代码,简单地打开一个 JOptionPane,等待用户的响应,然后关闭它。与该对象相关的哪些事件现在已放在 EDT 上?是吗:a) 只是创建对象(JOptionPane)。b) 对象生命周期内所有与对象相关的事件。C) 其他的东西(请注明)。

谢谢,

埃利奥特

见下文:

        try {
SwingUtilities.invokeAndWait(new Runnable() {
public void run(){
JOptionPane.showMessageDialog(myComponent, msg);
}
});
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

最佳答案

据我所知,以下所有“事件”都将在 EDT 中执行:

  • 由最终用户直接触发的所有事件(鼠标事件、按键事件)以及由这些事件触发的所有更高级别的事件(操作、焦点...);实际上你可以说所有 AWT 和 Swing EventListener 总是在 EDT 中调用
  • 所有绘制代码​​(当需要绘制区域时,由组件变化或窗口大小或位置变化触发)
  • 通过 SwingUtilities.invokeAndWait()SwingUtilities.invokeLater() 调用的任何代码。

关于java - 了解 Java 事件调度线程中调用的代码范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7784939/

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