ActionListeners如何在内存中设置?

时间:2016-11-22 11:15:10

标签: java swing

我提交了JButton,它有两个ActionListeners

Category cat = new Category();

//this is launched second
submit.addActionListener(new ConfirmListener(new CategoryService(), cat));

//this is launched first. Set values
submit.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent e) {
        String title = field.getText();
        cat.setTitle(title);
    }

});

它们是否已被置于堆叠状态并且随着它们弹出而被启动?第二个侦听器设置对象的值,第一个侦听器使用该对象。

2 个答案:

答案 0 :(得分:3)

' ActionListener存储在列表数据结构中,该列表数据结构是组件的成员。它们通常按照添加顺序调用,但这不能保证,并且可以通过例如子类以不同方式处理。

因此,依赖于侦听器的特定调用顺序被认为是不好的做法。如果需要订单,请创建一个复合侦听器,然后按照您需要的顺序调用实际的侦听器方法。

答案 1 :(得分:1)

ActionListener位于存储在EventListenerList中的场景后面,因此它们将按照添加顺序执行。