/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package sliderbug; import com.sun.javafx.runtime.VersionInfo; import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.Slider; import javafx.scene.control.TextField; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; import javafx.stage.Stage; public class SliderBug extends Application { @Override public void start(Stage primaryStage) { Parent root = createScene(); Scene scene = new Scene(root, 300, 600); primaryStage.setTitle(VersionInfo.getRuntimeVersion()); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } private Parent createScene() { final Slider slider = new Slider(-100, 200, 100); slider.setSnapToTicks(true); slider.setMinorTickCount(0); slider.setMajorTickUnit(50); slider.setValue(45); slider.setShowTickMarks(true); slider.setShowTickLabels(true); Label lbVal = new Label(); lbVal.textProperty().bind(slider.valueProperty().asString()); final TextField tfNewVal = new TextField(); Button btnVal = new Button("Set value"); btnVal.setOnAction(new EventHandler() { @Override public void handle(ActionEvent t) { try { double val = Double.parseDouble(tfNewVal.getText()); slider.setValue(val); } catch (Exception e) { tfNewVal.setText(e.getMessage()); } } }); Slider twin = new Slider(0, 500, 100); slider.valueProperty().bind(twin.valueProperty()); VBox vBox = new VBox(3); vBox.getChildren().addAll(lbVal, tfNewVal, btnVal, twin); HBox root = new HBox(5); root.getChildren().addAll(slider, vBox); return root; } }