Java Swing多个ActionListeners

时间:2017-02-10 12:56:22

标签: java swing jbutton actionlistener

我试图让行动尽可能分开,但我遇到了一个行动在另一个之前解雇的问题。现在我有一个按钮,添加了两个动作监听器。

JButton button = new JButton ();
...
button.addActionListener (new Action1 ());
button.addActionListener (new Action2 ());

2发生在1.之前我如何保证订单?有没有办法让某个动作触发其他动作?

2 个答案:

答案 0 :(得分:4)

通常,事件源不保证通知侦听器的顺序。这是有原因的:模式/概念是关于解耦监听器代码,即监听器应该彼此独立。

如果Action1Action2确实需要协调他们的工作,则代码不应分散在两个地方。

答案 1 :(得分:3)

如果这两个动作依赖于它们的顺序,则它在功能上是一个动作。我只会注册第一个actionlistener并直接从第一个调用第二个,或者 - 更好的是 - 在一个actionlistener中编写代码。