수색…
액션 리스너 추가하기
버튼은 활성화 될 때 액션 이벤트를 시작합니다 (예 : 클릭 한 상태, 버튼의 키 바인딩을 누르면 ...).
button.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println("Hello World!");
}
});
Java 8 이상을 사용하는 경우 액션 리스너에 람다를 사용할 수 있습니다.
button.setOnAction((ActionEvent a) -> System.out.println("Hello, World!"));
// or
button.setOnAction(a -> System.out.println("Hello, World!"));
버튼에 그래픽 추가하기
버튼에는 그래픽이있을 수 있습니다. graphic
은 ProgressBar
와 같은 모든 JavaFX 노드가 될 수 있습니다.
button.setGraphic(new ProgressBar(-1));
ImageView
button.setGraphic(new ImageView("images/icon.png"));
또는 다른 단추
button.setGraphic(new Button("Nested button"));
버튼 만들기
Button
만들기는 간단합니다.
Button sampleButton = new Button();
그러면 텍스트 나 그래픽이없는 새 Button
이 만들어집니다.
텍스트가있는 Button
을 만들려면 String
을 매개 변수로 사용하는 생성자를 사용하면됩니다 ( Button
의 textProperty
를 설정 함).
Button sampleButton = new Button("Click Me!");
내부 또는 다른 Node
내부에 그래픽이있는 Button
을 만들려면 다음 생성자를 사용하십시오.
Button sampleButton = new Button("I have an icon", new ImageView(new Image("icon.png")));
기본 및 취소 버튼
Button
API를 사용하면 Scene
할당 된 단축키 목록에 액세스하거나 키 이벤트를 명시 적으로 듣지 않고도 일반적인 키보드 단축키를 버튼에 쉽게 할당 할 수 있습니다. 즉, 다음 두 가지 편리한 메소드가 제공됩니다 : setDefaultButton
및 setCancelButton
:
setDefaultButton
을true
설정하면KeyCode.ENTER
이벤트를받을 때마다Button
이 실행됩니다.setCancelButton
을true
설정하면KeyCode.ESCAPE
이벤트를받을 때마다Button
이 실행됩니다.
다음 예제에서는 포커스가 있는지 여부에 관계없이 입력 또는 이스케이프 키를 누를 때 발생하는 두 개의 버튼이있는 Scene
을 만듭니다.
FlowPane root = new FlowPane();
Button okButton = new Button("OK");
okButton.setDefaultButton(true);
okButton.setOnAction(e -> {
System.out.println("OK clicked.");
});
Button cancelButton = new Button("Cancel");
cancelButton.setCancelButton(true);
cancelButton.setOnAction(e -> {
System.out.println("Cancel clicked.");
});
root.getChildren().addAll(okButton, cancelButton);
Scene scene = new Scene(root);
이러한 KeyEvents
가 부모 Node
의해 소비되는 경우 위 코드는 작동하지 않습니다.
scene.setOnKeyPressed(e -> {
e.consume();
});