gpt4 book ai didi

java - 首先触发 ActionEvent

转载 作者:行者123 更新时间:2023-11-29 06:58:14 25 4
gpt4 key购买 nike

我已经扩展了 JTextField。我的类(class)有多个 ActionListeners,但我特别需要一个始终首先触发。有没有办法确保特定的 ActionEvent 总是最先出现?

请注意,我确实有一个对我的 ActionListener 的引用。我假设我需要重写一个方法,但我不确定是哪个方法。

最佳答案

Is there a way to ensure that a particular ActionEvent always first first?

Java 规范不保证触发事件的顺序。

但是,我相信默认实现是最后一个添加到组件的 ActionListener 是第一个。

编辑:

I use the mouse listener

为什么要使用 MouseListener?当用户跳转到/跳出字段时会发生什么?不要假设使用鼠标。在这种情况下,FocusListener 将处理键盘或鼠标 Activity 。

The problem comes into play when the user presses enter on the text field.

如果用户不按回车键而只是跳转到下一个字段,会发生什么情况?这就是我会做的。

This needs to happen before other action listners do their thing.

还有哪些 ActionListener? tgext 字段将只有一个监听器。

无论如何,也许可以回答您的问题,您可以通过使用 SwingUtilities.invokeLater(...) 将您的代码放在事件调度线程的末尾来有效地更改执行顺序,以便它在所有其他事件之后执行:

public void actionPerformed(ActionEvent e)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
// add your code here
}
});
}

同样,任何依赖于事件顺序的解决方案都不是好的解决方案。不同平台上的事件顺序可能不同。

关于java - 首先触发 ActionEvent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30353187/

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