Rumah  >  Artikel  >  Java  >  Butang

Butang

PHPz
PHPzasal
2024-07-16 22:02:101197semak imbas

Butang ialah kawalan yang mencetuskan peristiwa tindakan apabila diklik. JavaFX menyediakan butang biasa, butang togol, butang kotak semak dan butang radio. Ciri biasa butang ini ditakrifkan dalam kelas ButtonBase dan Berlabel seperti yang ditunjukkan dalam Rajah di bawah.

Image description

Kelas Berlabel mentakrifkan sifat biasa untuk label dan butang. Butang sama seperti label kecuali butang itu mempunyai sifat onAction yang ditakrifkan dalam kelas ButtonBase, yang menetapkan pengendali untuk mengendalikan tindakan butang.

Kod di bawah memberikan program yang menggunakan butang untuk mengawal pergerakan teks, seperti yang ditunjukkan dalam Rajah di bawah.

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

Atur cara mencipta dua butang btLeft dan btRight dengan setiap butang mengandungi teks dan imej (baris 18–19). Butang diletakkan dalam HBox (baris 20) dan HBox diletakkan di bahagian bawah anak tetingkap sempadan (baris 25). Teks dibuat dalam baris 14 dan diletakkan di tengah anak tetingkap sempadan (baris 29). Pengendali tindakan untuk btLeft mengalihkan teks ke kiri (baris 31). Pengendali tindakan untuk btRight mengalihkan teks ke kanan (baris 32).

Program ini sengaja mentakrifkan kaedah getPane() yang dilindungi untuk mengembalikan anak tetingkap (baris 16). Kaedah ini akan ditindih oleh subkelas dalam contoh akan datang untuk menambah lebih banyak nod dalam anak tetingkap. Teks diisytiharkan dilindungi supaya ia boleh diakses oleh subkelas (baris 14).

Atas ialah kandungan terperinci Butang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn