gpt4 book ai didi

java - 所有鼠标事件监听器执行完毕后调用一段代码

转载 作者:行者123 更新时间:2023-12-01 19:24:52 26 4
gpt4 key购买 nike

我创建了一个面板,在上面绘制了一组对象。每个对象都作为鼠标事件监听器添加到面板中。据我所知,事件发生后,监听器会收到通知,并且代码可能(或正在?)在多个线程中执行。是否可以附加一个自定义代码,该代码将在所有监听器完成执行代码后执行?

最佳答案

在同一线程(事件调度程序线程)中执行。

要执行您想要的操作,您只需添加一个额外的监听器并让该监听器调用 SwingUtilities 的“executeLater”方法。类。

它的作用是等待 EDT 线程完成通知,然后调用您的代码。

要测试它,请添加此监听器并查看它的作用:

 class MouseListener extends MouseAdapter {
public void mouseClicked(MouseEvent e) {
// System.out.println("If uncommented this would be invoked with the rest of the listners");
SwingUtilities.invokeLater( new Runnable() {
public void run() {
System.out.println("Invoked after all the listeners were notified");
}
}
}
}

当然,这是一个鼠标监听器。对于所有其他听众来说,这个概念都是相同的。

关于java - 所有鼠标事件监听器执行完毕后调用一段代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1800264/

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