我试图让行动尽可能分开,但我遇到了一个行动在另一个之前解雇的问题。现在我有一个按钮,添加了两个动作监听器。
JButton button = new JButton ();
...
button.addActionListener (new Action1 ());
button.addActionListener (new Action2 ());
2发生在1.之前我如何保证订单?有没有办法让某个动作触发其他动作?
答案 0 :(得分:4)
通常,事件源不保证通知侦听器的顺序。这是有原因的:模式/概念是关于解耦监听器代码,即监听器应该彼此独立。
如果Action1
和Action2
确实需要协调他们的工作,则代码不应分散在两个地方。
答案 1 :(得分:3)
如果这两个动作依赖于它们的顺序,则它在功能上是一个动作。我只会注册第一个actionlistener并直接从第一个调用第二个,或者 - 更好的是 - 在一个actionlistener中编写代码。