开发者

Anyway to control the order events fire in Swing

Is there anyway that I can control the order in which events are fired in my Swing application? For example, I have a MouseListener and an ActionListener for a component. Can I make it so the MouseListener always fires before the ActionListener?

Seems to me if I add the MouseListener before the ActionListner, I am just praying that they will fire in that order.

Now I understand that coding this way is bad practice and that you should not count on the order of events firing, but for this situation I am encountering, it is a must.

开发者_如何学编程

Thanks


If you have an action triggered off of a one listener that needs to happen before the other then change your logic.

Either combine the listeners so that a single listener gets both events and holds onto one temporarily if needed. Or only add one listener and have it call the appropriate method or create a new event after it finishes.


Wrap the ActionListener code in a SwingUtilities.invokeLater(...). The code will be added to the end of the EDT.

I would still have both listeners in the same class so the dependency is well documented.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜