Heim  >  Artikel  >  Java  >  Taste

Taste

PHPz
PHPzOriginal
2024-07-16 22:02:101197Durchsuche

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 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 am unteren Rand eines Randbereichs 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).

Das obige ist der detaillierte Inhalt vonTaste. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn