익명 클래스에 대해 익히고 오라클에서 가져 왔습니다. 익명의 클래스를 사용하지 않으면 누군가가 어떻게 보이는지 보여 줄 수 있기를 바랍니다. 나는 새로운 수업으로 이것을 어떻게 끝내었을 까? 익명의 Java 클래스를 익명이 아닌 클래스로 재 작성하려면 어떻게해야합니까?
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class HelloWorld extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Hello World!");
Button btn = new Button();
btn.setText("Say 'Hello World'");
btn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println("Hello World!");
}
});
StackPane root = new StackPane();
root.getChildren().add(btn);
primaryStage.setScene(new Scene(root, 300, 250));
primaryStage.show();
}
}
이 예제에서는 메소드 호출은 btn.setOnAction 당신이 말 '안녕하세요'버튼을 선택하면 어떻게되는지 지정합니다. 이 메서드에는 EventHandler 유형의 객체가 필요합니다. EventHandler 인터페이스에는 처리 방법이 하나만 포함되어 있습니다. 이 메서드를 새 클래스으로 구현하는 대신이 예제에서는 익명 클래스 식을 대신 사용합니다. 이 표현식은 btn.setOnAction 메소드에 전달 된 인수입니다.
출처 :
일반 최상위 수준 클래스와 익명 클래스 간의 차이점과 유사점을 고려하십시오. –
@LuiggiMendoza 무엇을 해야할지 모르겠습니다. – johnny
정말로 ... 새로운 클래스를 만들면 EventHandler가 구현됩니다. 미안합니다. –
Felquir