當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


JavaFX 類 Slider用法及代碼示例


滑塊是JavaFX中的控件,用於顯示連續範圍或離散範圍的有效數字選擇,並允許用戶與控件進行交互。滑塊用旋鈕呈現為垂直或水平條,用戶可以滑動以指示所需的值。滑塊也可以帶有刻度線和標簽,以指示沿條的間隔。
滑塊的三個基本變量是最小值,最大值和值。該值應始終是在最小值和最大值定義的範圍內的數字。最小值應始終小於最大值。最小默認為0,最大默認為100。

該類的構造函數:

  • Slider():創建一個默認的Slider實例。
  • Slider(double min, double max, double value):使用指定的滑塊最小值,最大值和當前值構造一個Slider控件。

常用方法:


方法 描述
adjustValue(double newValue) 調整值以匹配newValue。
decrement() 以blockIncrement減值,以最大值為界。
getBlockIncrement() 獲取屬性blockIncrement的值。
getMax() 獲取屬性max的值。
getMin() 獲取屬性min的值。
getMajorTickUnit() 獲取屬性majorTickUnit的值。
getMinorTickCount() 獲取屬性minorTickCount的值。
getValue() 獲取屬性值的值。
increment() 以blockIncrement為單位遞增值,以最大值為界。
setBlockIncrement(double value) 設置屬性blockIncrement的值。
setMajorTickUnit(double value) 設置屬性majorTickUnit的值。
setMax(double value) 設置屬性max的值。
setMin(double value) 設置屬性min的值。
setMinorTickCount(int value) 設置屬性minorTickCount的值。
setValue(double value) 設置屬性值的值。
setValueChanging(boolean value) 設置屬性valueChanging的值。
setShowTickMarks(boolean value) 設置屬性showTickMarks的值。
setShowTickLabels(boolean value) 設置屬性showTickLabels的值。
isShowTickLabels() 獲取屬性showTickLabels的值。
isShowTickMarks() 獲取屬性showTickMarks的值。

以下示例程序旨在說明Slider類的用法:

  1. 實現Slider類的簡單Java程序:在此程序中,我們將創建一個組和場景。將場景添加到框架。然後,創建一個Slider並將其添加到框架。現在啟動應用程序。
    // Java program to implement the Slider Class 
    import javafx.application.Application; 
    import javafx.scene.Group; 
    import javafx.scene.Scene; 
    import javafx.scene.control.Slider; 
    import javafx.stage.Stage; 
      
    public class SliderExample extends Application { 
      
        public void start(Stage stage) 
        { 
      
            // creating group 
            Group root = new Group(); 
            Scene scene = new Scene(root, 600, 400); 
      
            // set Scene to the stage 
            stage.setScene(scene); 
      
            // set title for the frame 
            stage.setTitle("Slider Sample"); 
      
            // create slider 
            Slider slider = new Slider(); 
      
            // add slider to the frame 
            root.getChildren().add(slider); 
      
            stage.show(); 
        } 
      
        // Main Method 
        public static void main(String[] args) 
        { 
      
            // launch the application 
            launch(args); 
        } 
    }

    輸出:

  2. 通過使用TickMarks和TickLabels實現Slider類的Java程序:在此程序中,我們將創建一個組和場景。將場景添加到框架。創建具有指定的最小值,最大值和值的滑塊。啟用標記和標簽。用指定的值設置MajorTickUnit。將滑塊添加到框架並顯示它。
    // Java program to implement Slider class 
    // by using TickMarks and TickLabels 
    import javafx.application.Application; 
    import javafx.scene.Group; 
    import javafx.scene.Scene; 
    import javafx.scene.control.Slider; 
    import javafx.stage.Stage; 
      
    public class SliderExample extends Application { 
      
        public void start(Stage stage) 
        { 
            Group root = new Group(); 
      
            // create a Scene 
            Scene scene = new Scene(root, 600, 400); 
      
            // add Scene to the frame 
            stage.setScene(scene); 
      
            // set title of the frame 
            stage.setTitle("Slider Sample"); 
      
            // Creates a slider 
            Slider slider = new Slider(0, 1, 0.5); 
      
            // enable the marks 
            slider.setShowTickMarks(true); 
      
            // enable the Labels 
            slider.setShowTickLabels(true); 
      
            // set Major tick unit 
            slider.setMajorTickUnit(0.25f); 
      
            // sets the value of the property 
            // blockIncrement 
            slider.setBlockIncrement(0.1f); 
      
            root.getChildren().add(slider); 
      
            // display 
            stage.show(); 
        } 
      
        // Main Method 
        public static void main(String[] args) 
        { 
      
            // Launch the application 
            launch(args); 
        } 
    }

    輸出:

  3. 使用ChangeListener實現Slider類的Java程序:在此程序中,我們將創建一個Label並設置文本的顏色。創建一個滑塊並設置其最小值,最大值和值。啟用TickLabels和TickMarks。設置屬性blockIncrement的值。 setBlockIncrement()方法定義用戶單擊軌道時拇指移動的距離。添加ChangeListener,在移動滑塊時,亮度變化的值將顯示在標簽中。創建一個VBox並添加到框架。創建場景並轉到框架。最後,啟動應用程序。
    // Java program to implement Slider Class 
    // using ChangeListener 
    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 SliderExample extends Application { 
      
        public void start(Stage stage) 
        { 
      
            // create label 
            Label label = new Label("Select the Brightness"); 
            Label l = new Label(" "); 
      
            // set the color of the tesxt 
            l.setTextFill(Color.BLACK); 
      
            // create slider 
            Slider slider = new Slider(); 
      
            // set the value of property min, 
            // max and value 
            slider.setMin(0); 
            slider.setMax(100); 
            slider.setValue(80); 
      
            // enable TickLabels and Tick Marks 
            slider.setShowTickLabels(true); 
            slider.setShowTickMarks(true); 
      
            slider.setBlockIncrement(10); 
      
            // Adding Listener to value property. 
            slider.valueProperty().addListener( 
                 new ChangeListener<Number>() { 
      
                public void changed(ObservableValue <? extends Number >  
                          observable, Number oldValue, Number newValue) 
                { 
      
                    l.setText("value:" + newValue); 
                } 
            }); 
      
            // create a VBox 
            VBox root = new VBox(); 
      
            root.setPadding(new Insets(20)); 
            root.setSpacing(10); 
            root.getChildren().addAll(label, slider, l); 
      
            stage.setTitle("Slider Sample"); 
      
            // create Scene and add to the frame 
            Scene scene = new Scene(root, 350, 200); 
            stage.setScene(scene); 
            stage.show(); 
        } 
      
        // Main Method 
        public static void main(String[] args) 
        { 
      
            // Launch Application 
            Application.launch(args); 
        } 
    }

    輸出:

注意:以上程序可能無法在在線IDE中運行。請使用離線編譯器。

參考:https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/Slider.html



相關用法


注:本文由純淨天空篩選整理自chitranayal大神的英文原創作品 JavaFX | Slider Class。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。