私は単純なアプリを構築しており、コントローラーがビューにイベントハンドラーを追加する単純なMVCパターンでそれを実装しています。UIにハンドラーをアタッチするコントローラーコードのサンプルを次に示します。
基本的に、コードはUIの保存ボタンがクリックされたときにイベントハンドラーを追加します。UIには、名前とID番号のエントリが含まれています。actionPerformed
私がやりたかったのは、名前とID番号を関数に渡すことです。
ui.onAddStudent(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
System.out.print("test");
}
});
また、UI(別ファイル)の受信機能は以下のとおりです。
public void onAddStudent(ActionListener handler){
//something missing here
addStudent.addActionListener(handler);
}
私はJavaが得意ではないので、Javaにはあまり興味がありません。私は実際にJavaScriptを実行しています。現在、同様のハンドラーJavaScriptでは、call()
orapply()
メソッドを使用してハンドラーを呼び出し、追加のパラメーターを渡すことができます。上記のコードがJSにある場合、次のようになります。
//in the controller
ui.onAddStudent(function(event,id,name){
//I can use id and name
});
//in the UI
ui.onAddStudent = function(handler){
//store into a cache
//add handler to the button
}
//when student is added (button clicked)
handler.call(this,event,id,name);
Javaで同じことをするにはどうすればよいですか?