버튼은 클릭 시 액션 이벤트를 트리거하는 컨트롤입니다. JavaFX는 일반 버튼, 토글 버튼, 체크박스 버튼, 라디오 버튼을 제공합니다. 이들 버튼의 공통 기능은 아래 그림과 같이 ButtonBase 및 Labeled 클래스에 정의되어 있습니다.
Labeled 클래스는 레이블과 버튼의 공통 속성을 정의합니다. 버튼의 작업을 처리하기 위한 핸들러를 설정하는 ButtonBase 클래스에 정의된 onAction 속성이 버튼에 있다는 점을 제외하면 버튼은 레이블과 같습니다.
아래 코드는 아래 그림과 같이 버튼을 사용하여 텍스트의 이동을 제어하는 프로그램을 제공합니다.
package application; import javafx.application.Application; import javafx.stage.Stage; import javafx.geometry.Pos; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.image.ImageView; import javafx.scene.layout.BorderPane; import javafx.scene.layout.HBox; import javafx.scene.layout.Pane; import javafx.scene.text.Text; public class ButtonDemo extends Application { protected Text text = new Text(50, 50, "JavaFX Programming"); protected BorderPane getPane() { HBox paneForButtons = new HBox(20); Button btLeft = new Button("Left", new ImageView("file:/C:/Users/Paul/development/MyJavaFX/src/application/image/lo.jpg")); Button btRight = new Button("Right", new ImageView("file:/C:/Users/Paul/development/MyJavaFX/src/application/image/lo.jpg")); paneForButtons.getChildren().addAll(btLeft, btRight); paneForButtons.setAlignment(Pos.CENTER); paneForButtons.setStyle("-fx-border-color: green"); BorderPane pane = new BorderPane(); pane.setBottom(paneForButtons); Pane paneForText = new Pane(); paneForText.getChildren().add(text); pane.setCenter(paneForText); btLeft.setOnAction(e -> text.setX(text.getX() - 10)); btRight.setOnAction(e -> text.setX(text.getX() + 10)); return pane; } @Override // Override the start method in the Application class public void start(Stage primaryStage) { // Create a scene and place it in the stage Scene scene = new Scene(getPane(), 450, 200); primaryStage.setTitle("ButtonDemo"); // Set the stage title primaryStage.setScene(scene); // Place the scene in the stage primaryStage.show(); // Display the stage } public static void main(String[] args) { Application.launch(args); } }
프로그램은 btLeft 및 btRight 두 개의 버튼을 생성하며 각 버튼에는 텍스트와 이미지가 포함됩니다(18~19행). 버튼은 HBox(20행)에 배치되고 HBox는 테두리 창(25행)의 하단에 배치됩니다. 텍스트는 14행에서 생성되고 테두리 창 중앙(29행)에 배치됩니다. btLeft에 대한 작업 핸들러는 텍스트를 왼쪽(31행)으로 이동합니다. btRight에 대한 작업 핸들러는 텍스트를 오른쪽(32행)으로 이동합니다.
프로그램은 의도적으로 보호된 getPane() 메소드를 정의하여 창(16행)을 반환합니다. 이 메서드는 향후 예제에서 하위 클래스로 재정의되어 창에 더 많은 노드를 추가합니다. 텍스트는 서브클래스에서 액세스할 수 있도록 보호됨으로 선언됩니다(14행).
위 내용은 단추의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!