Eine Schaltfläche ist ein Steuerelement, das beim Klicken ein Aktionsereignis auslöst. JavaFX bietet normale Schaltflächen, Umschaltschaltflächen, Kontrollkästchenschaltflächen und Optionsschaltflächen. Die gemeinsamen Funktionen dieser Schaltflächen sind in den Klassen ButtonBase und Labeled definiert, wie in der Abbildung unten dargestellt.
Die Klasse Labeled definiert die gemeinsamen Eigenschaften für Beschriftungen und Schaltflächen. Eine Schaltfläche ist genau wie eine Beschriftung, außer dass die Schaltfläche über die Eigenschaft onAction verfügt, die in der Klasse ButtonBase definiert ist und einen Handler für die Verarbeitung der Aktion einer Schaltfläche festlegt.
Der folgende Code gibt ein Programm an, das die Tasten verwendet, um die Bewegung eines Textes zu steuern, wie in der Abbildung unten gezeigt.
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); } }
Das Programm erstellt zwei Schaltflächen btLeft und btRight, wobei jede Schaltfläche einen Text und ein Bild enthält (Zeilen 18–19). Die Schaltflächen werden in einer HBox (Zeile 20) platziert und die HBox wird unten in einem Rahmenbereich platziert (Zeile 25). In Zeile 14 wird ein Text erstellt und in der Mitte des Randbereichs platziert (Zeile 29). Der Aktionshandler für btLeft verschiebt den Text nach links (Zeile 31). Der Aktionshandler für btRight verschiebt den Text nach rechts (Zeile 32).
Das Programm definiert absichtlich eine geschützte Methode getPane(), um einen Bereich zurückzugeben (Zeile 16). Diese Methode wird in den kommenden Beispielen von Unterklassen überschrieben, um dem Bereich weitere Knoten hinzuzufügen. Der Text wird als geschützt deklariert, sodass Unterklassen darauf zugreifen können (Zeile 14).
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3