ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • javaFX 이벤트 핸들러
    고급 JAVA/FX 2020. 5. 22. 19:16

    ex1) ActionEvent 를 처리하는 EventHandler<ActionEvent>를 등록하려면 

    => setOnAction()메서드 사용

    Button b = new Button();

    b.setOnAction(new EventHandler<ActionEvent>(){

       @Override

          public vod handle(ActionEvent ae) { ... }

      });

     

    ex2) TableView 행을 클릭할 때 발생하는 MouseEvent를 처리하는 EventHandler<MouseEvent>를 

    등록하려면 => setOnMouseClicked() 메서듣 사용

    TableView tv = new TableView();

    tv.setOnMouseClicked(new EventHandler<MouseEvent>(){

      @Override

        public void handle(MouseEvent me) { ... }

     });

     

    ex3) 윈도우 우측 상단에 X(닫기) 버튼을 클릭했을 때 발생하는 WindowEvent를 처리하는 

    EventHandler<WindowEvent>를 등록하려면

    =>setOnCloseRequest() 메서드 사용.

    stage.setOnCloseRequest(new EventHandler<WindowEven>() {

      @Override

         public void handle(WindowEvent we) { ... }

      });

     

    *이벤트 핸들러는 하나의 메서드를 가진 함수적 인터페이스이다.

    => 람다식을 이용할 수 있다!

    b.setOnAction( event -> { ... } );

    tv.setOnMouseClicked( event -> { ... } );

    stage.setOnCloseRequest( event -> { ... } );

     

    public class AppMain extends Application {
    
    @Override
    
    public void start(Stage primaryStage) throws Exception {
    
    HBox hb = new HBox();
    
    hb.setPrefSize(200, 100);
    
    hb.setAlignment(Pos.CENTER);
    
    hb.setSpacing(20);
    
    
    Button btn1 = new Button("버튼1");
    
    btn1.setPrefWidth(100);
    
    btn1.setPrefHeight(50); // 버튼 크기 변경.
    
    btn1.setOnAction(new EventHandler<ActionEvent>() {
    
    @Override
    
    public void handle(ActionEvent event) {
    
    System.out.println("버튼1");
    
    }
    
    });
    
    
    Button btn2 = new Button("버튼2");
    
    btn2.setPrefWidth(50);
    
    btn2.setPrefHeight(100); // 버튼 크기 변경.
    
    btn2.setOnAction(event->System.out.println("버튼2"));
    
    
    hb.getChildren().addAll(btn1, btn2);
    
    Scene scene = new Scene(hb);
    
    
    primaryStage.setTitle("EventHandler");
    
    primaryStage.setScene(scene);
    
    primaryStage.setOnCloseRequest(event->System.out.println("종료"));
    
    primaryStage.show();
    
    }
    
    
    public static void main(String[] args) {
    
    launch(args);
    
    }
    
     
    
    }

    textProperty().addListener(new ChangeListener<String>() {

           @Override

            public void  changed(ObservableValue<? extends String> observable,

                                                        String oldValue, String newValue) {

            }

    });

    댓글

Designed by Tistory.