私はJavaやC#のようなOOP言語でかなり経験があります。今までFXに迷惑をかけずに、オフィスの退屈なイベントを処理することで周りを歩き始める。JavaFXイベント処理ミステリー - コードが削除され、イベントがまだ処理されていますか?
My FXアプリケーションはすべて1つのクラスで作成されています。私はこれらの2を含め、私が望んでいたパッケージを、輸入:
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
私はそうのような私のメインクラス宣言で型のActionEventでEventHandlerのインターフェイスを実装し...
public class Main extends Application implements EventHandler<ActionEvent>
私は上の匿名の内部クラスを書きましたボタンオブジェクトは、それは明らかにそれが必要のように働いたが、その後、私は実験を実行した
btnButton.setOnAction(new EventHandler<ActionEvent>(){
public void handle(ActionEvent event) {
System.out.println("I got clicked");
}
});
...そうのようにクリックイベントを処理します。私は上記の2つの輸入品を削除しました。 Mainクラス宣言の「実装」部分を削除しました。これは、イベント処理への参照なしに私のアプリケーションを残します。その後、ボタンオブジェクトに戻って、イベントハンドラをラムダ式として書きました...
btnButton.setOnAction(e -> System.out.println("I got touched"));
これは何ですか?それはまだ働いた!これは不可能です..イベントを処理するために必要なコードを削除した後、これがどのように機能するのか誰かが説明できますか?それは一種の面白いと私の心を吹いている。
返信いただきありがとうございます!
-KeplerIO
:ここでは関係セクションがありますlambdaexpressions.html)、ラムダ式は既定のJava 8ライブラリとは別のものであり、多くの宗教を自動的に処理する方法を完全に理解しています。これにはボタンアクションが含まれます。 – Sedrick