„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Taste

Taste

Veröffentlicht am 31.07.2024
Durchsuche:535

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.

Image description

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);
    }
}

Image description

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).

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/paulike/button-4khg?1 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

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