Hướng dẫn sử dụng JavaFX Slider
Xem thêm các chuyên mục:
Slider (Thanh trượt) là một thành phần giao diện cho phép bạn lựa chọn một giá trị số nằm trong một khoảng giá trị. Slider bao gồm một thanh (track) và một cần gạt có thể kéo (draggable thumb). Nó cũng có thể có các que đánh dấu (tick mark) và nhãn.
Block increment: Là giá trị tăng hoặc giảm khi bạn nhấn nút mũi tên sang trái hoặc sang phải để di chuyển cần gạt (thumb).


SliderDemo.java
package org.o7planning.javafx.slider; import javafx.application.Application; import javafx.geometry.Insets; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.control.Slider; import javafx.scene.layout.VBox; import javafx.stage.Stage; public class SliderDemo extends Application { @Override public void start(Stage stage) { Label label = new Label("Select Brightness:"); Slider slider = new Slider(); // Giá trị nhỏ nhất. slider.setMin(0); // Giá trị lớn nhất. slider.setMax(100); // Giá trị hiện thời. slider.setValue(80); slider.setShowTickLabels(true); slider.setShowTickMarks(true); slider.setBlockIncrement(10); VBox root = new VBox(); root.setPadding(new Insets(20)); root.setSpacing(10); root.getChildren().addAll(label, slider); stage.setTitle("Slider (o7planning.org)"); Scene scene = new Scene(root, 350, 200); stage.setScene(scene); stage.show(); } public static void main(String[] args) { Application.launch(args); } }
SliderChangeListenerDemo.java
package org.o7planning.javafx.slider; 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.Label; import javafx.scene.control.Slider; import javafx.scene.layout.VBox; import javafx.scene.paint.Color; import javafx.stage.Stage; public class SliderChangeListenerDemo extends Application { @Override public void start(Stage stage) { Label label = new Label("Select Brightness:"); Label infoLabel = new Label("-"); infoLabel.setTextFill(Color.BLUE); Slider slider = new Slider(); slider.setMin(0); slider.setMax(100); slider.setValue(80); slider.setShowTickLabels(true); slider.setShowTickMarks(true); slider.setBlockIncrement(10); // Thêm Listener vào value property. slider.valueProperty().addListener(new ChangeListener<Number>() { @Override public void changed(ObservableValue<? extends Number> observable, // Number oldValue, Number newValue) { infoLabel.setText("New value: " + newValue); } }); VBox root = new VBox(); root.setPadding(new Insets(20)); root.setSpacing(10); root.getChildren().addAll(label, slider, infoLabel); stage.setTitle("JavaFX Slider (o7planning.org)"); Scene scene = new Scene(root, 350, 200); stage.setScene(scene); stage.show(); } public static void main(String[] args) { Application.launch(args); } }
Chạy ví dụ:
