2016-11-22 12 views
0

私は2つのActionListenerに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); 
    } 

}); 

、彼らがスタックに置かれており、彼らはポップとして、それらが起動されていのJButtonを提出していますか? 2番目のリスナーはオブジェクトの値を設定し、最初のリスナーはオブジェクトを使用しています。

答えて

1

EventListenerListに保存されているシーンの後ろには、ActionListenerが追加されています。

3

'ActionListener'は、コンポーネントのメンバーであるリストデータ構造体に格納されます。それらは通常、追加された順番で呼び出されますが、これは保証されておらず、サブクラスなどで別々に処理できます。

したがって、リスナーの特定の呼び出し順序に依存することは悪い習慣と考えられます。オーダーが必要な場合は、コンポジット・リスナーを作成し、実際のリスナー・メソッドを必要な順序で呼び出します。

関連する問題