无论如何,我可以控制在Swing应用程序中触发事件的顺序吗? 例如,我有一个MouseListener和一个组件的ActionListener。我可以这样做,所以MouseListener总是在ActionListener之前触发吗?
如果我在ActionListner之前添加MouseListener,似乎对我来说,我只是祈祷他们将按此顺序激活。
现在我明白以这种方式编码是不好的做法,你不应该指望事件发生的顺序,但对于我遇到的这种情况,这是必须的。
由于
答案 0 :(得分:4)
如果某个侦听器触发了一个需要在另一个侦听器之前发生的动作,那么就改变你的逻辑。
组合侦听器,以便单个侦听器获取两个事件,并在需要时暂时保留一个事件。或者只添加一个侦听器并让它调用适当的方法或在完成后创建一个新事件。
答案 1 :(得分:1)
将ActionListener代码包装在SwingUtilities.invokeLater(...)中。该代码将被添加到EDT的末尾。
我仍然会在同一个类中拥有两个侦听器,因此依赖关系已有详细记录。