더북(TheBook)

지연 실행deferred execution의 또 다른 예로 버튼 콜백callback을 살펴보자. 리스너 인터페이스listener interface를 구현하는 클래스의 메서드에 콜백 액션callback action을 집어넣고, 인스턴스를 생성해서 버튼에 등록한다. 이 작업은 빈번히 일어나기 때문에 많은 프로그래머가 ‘익명 클래스의 익명 인스턴스’ 문법을 사용한다.


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

public void handle(ActionEvent event) {

System.out.println("Thanks for clicking!");

}

});


 

중요한 부분은 handle 메서드 내부에 있는 코드다. 이 코드는 버튼 클릭이 일어날 때마다 실행된다.

<Note>

자바 8은 JavaFX를 스윙 GUI 툴킷의 후속 버전으로 두고 있기 때문에, 이와 같은 예제에서 JavaFX를 사용한다(JavaFX에 관한 더 자세한 정보는 4장을 참고하기 바란다). 물론 세부 사항은 중요하지 않다. 중요한 점은 모든 사용자 인터페이스 툴킷(스윙, JavaFX 또는 안드로이드)에서 버튼 클릭 시 실행하고자 하는 코드를 버튼에 전달한다는 사실이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.