如何在 JavaFX 中更改滑塊的方向?
JavaFX 提供了一個名為 Slider 的類,它代表一個顯示連續值範圍的滑塊元件。它包含一個顯示數值的軌道。在軌道上,有一個指向數字的滑塊。您可以提供滑塊的最大值、最小值和初始值。
在 JavaFX 中,您可以透過例項化 **javafx.scene.control.Slider** 類來建立一個滑塊。
更改滑塊的方向
JavaFX 滑塊可以是垂直的或水平的,預設情況下例項化 Slider 類時會建立一個水平滑塊。orientation 屬性指定當前滑塊的方向,即水平或垂直。您可以使用 **setOrientation()** 方法為此屬性設定值。
您可以將以下兩個常量之一作為引數傳遞給此方法:
Orientation.VERTICAL
Orientation.HORIZONTAL
因此,要更改滑塊的方向,您需要呼叫 setOrientation 方法,並將上述兩個值之一作為引數傳遞。
示例
import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.geometry.Insets;
import javafx.geometry.Orientation;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.Slider;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.VBox;
import javafx.scene.shape.DrawMode;
import javafx.scene.shape.Sphere;
import javafx.scene.transform.Rotate;
import javafx.scene.transform.Scale;
import javafx.stage.Stage;
public class SliderOrientation extends Application {
public void start(Stage stage) {
//Drawing a Sphere
Sphere sphere = new Sphere();
sphere.setRadius(75.0);
sphere.setDrawMode(DrawMode.LINE);
//Creating a slider for rotation
Slider slider1 = new Slider(0, 360, 0);
//Setting its orientation to vertical
slider1.setOrientation(Orientation.VERTICAL);
slider1.setShowTickLabels(true);
slider1.setShowTickMarks(true);
slider1.setMajorTickUnit(90);
slider1.setBlockIncrement(10);
Rotate rotate = new Rotate();
slider1.valueProperty().addListener(new ChangeListener<Number>() {
public void changed(ObservableValue <?extends Number>observable, Number oldValue, Number newValue){
//Setting the angle for the rotation
rotate.setAngle((double) newValue);
}
});
//Creating a slider for scaling
Slider slider2 = new Slider(0.3, 2.1, 0.6);
//Setting its orientation to Horizontal
slider2.setOrientation(Orientation.HORIZONTAL);
slider2.setShowTickLabels(true);
slider2.setShowTickMarks(true);
slider2.setMajorTickUnit(0.5);
slider2.setBlockIncrement(0.1);
Scale scale = new Scale();
slider2.valueProperty().addListener(new ChangeListener<Number>() {
public void changed(ObservableValue <?extends Number>observable, Number oldValue, Number newValue){
scale.setX((double) newValue);
scale.setY((double) newValue);
}
});
//Adding all the transformations to the node
sphere.getTransforms().addAll(rotate, scale);
//Creating the pane
BorderPane pane = new BorderPane();
pane.setRight(new VBox(new Label("Rotate"), slider1));
pane.setCenter(sphere);
pane.setLeft(new VBox(new Label("Scale"), slider2));
pane.setPadding(new Insets(10, 10, 10, 10));
//Preparing the scene
Scene scene = new Scene(pane, 595, 330);
stage.setTitle("Slider Orientation");
stage.setScene(scene);
stage.show();
}
public static void main(String args[]){
launch(args);
}
}輸出

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