0

AbstractAction を拡張する actionSave クラスがあります。保存ボタンに使用します。他の場所で、ボタンに使用されたのと同じ瞬間を実行したい。以下のように使用するという結論に達しましたが、引数として何を渡せばよいかわかりませんか?

model.getActionSave().actionPerformed("what should i add here for action event");
4

2 に答える 2

4

メソッドのコードをactionPerformed()引数なしで別のメソッドに抽出し、代わりにこのメソッドを呼び出します。

public void actionPerformed(ActionEvent e) {
    save();
}

public void save() {
    ...
}

...

model.getActionSave().save();
于 2012-06-13T16:11:20.620 に答える
1

独自の を作成するだけActionEventで、パブリック コンストラクターがあります。例えば

model.getActionSave().actionPerformed( 
 new ActionEvent( this, ActionEvent.ACTION_PERFORMED, "Save" )
);

たとえば、UI をテストしている場合は、API を介してボタンをクリックすることも選択できます。

button.doClick();

しかし、一般的に私は最初のアプローチを好み、UI との結合を避けます。

于 2012-06-13T16:21:18.300 に答える