如何使用 JavaFX 為滑塊設定動作?
JavaFX 提供了一個名為 Slider 的類,它表示一個滑塊元件,用於顯示連續的值範圍。它包含一個顯示數值的軌道。沿著軌道有一個指向數字的滑塊。您可以提供滑塊的最大值、最小值和初始值。
為滑塊設定動作
Slider 類的名為 value 的屬性表示滑塊的當前值,valueProperty() 返回一個表示滑塊當前值的屬性物件。您可以透過為此屬性新增監聽器來設定值更改時的動作,使用 addListener() 方法。
示例
在下面的 JavaFX 示例中,我們建立了一個滑塊和一個圓形。
我們例項化了 Translate(變換)類,並將滑塊的新值連結到沿 x 軸的平移值,並將平移變換新增到圓形。
import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Slider;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.scene.transform.Translate;
import javafx.stage.Stage;
public class SliderAction extends Application {
@Override
public void start(Stage stage) {
//Drawing a Rectangle
Circle circle = new Circle(50);
circle.setFill(Color.DARKRED);
circle.setStroke(Color.BLUEVIOLET);
//Setting the slider
Slider slider = new Slider(0, 500, 0);
slider.setShowTickLabels(true);
slider.setShowTickMarks(true);
slider.setMajorTickUnit(100);
slider.setBlockIncrement(50);
//Setting the width of the slider
slider.setMaxWidth(300);
//Creating the translation transformation
Translate translate = new Translate();
//Linking the transformation to the slider
slider.valueProperty().addListener(new ChangeListener<Number>() {
public void changed(ObservableValue <?extends Number>observable, Number oldValue, Number newValue){
translate.setX((double) newValue);
translate.setY(50);
translate.setZ(100);
}
});
//Adding the transformation to the circle
circle.getTransforms().add(translate);
//VBox to arrange circle and the slider
VBox vbox = new VBox(85);
vbox.setPadding(new Insets(10));
vbox.getChildren().addAll(circle, slider);
vbox.setStyle("-fx-background-color: BEIGE");
//Preparing the scene
Scene scene = new Scene(vbox, 600, 250);
stage.setTitle("Slider Example");
stage.setScene(scene);
stage.show();
}
public static void main(String args[]){
launch(args);
}
}輸出
執行上述程式後,它將生成一個帶有滑塊和圓形的 JavaFX 視窗。如果移動滑塊,圓形將沿著 x 軸滑動。

廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP