package graphics; import java.net.URL; import java.util.ResourceBundle; import javafx.beans.value.ObservableValue; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.control.*; import javafx.scene.shape.Rectangle; public class FXMLController implements Initializable { @FXML private Slider sliderA; @FXML private ComboBox comboBoxB; @FXML private ScrollBar scrollBarC; @FXML private Spinner spinnerD; @FXML private TextField textFieldE; @FXML private Label labelA; @FXML private Label labelB; @FXML private Label labelC; @FXML private Label labelD; @FXML private Label labelE; @FXML private Rectangle rectangleA; @FXML private Rectangle rectangleB; @FXML private Rectangle rectangleC; @FXML private Rectangle rectangleD; @FXML private Rectangle rectangleE; @Override public void initialize(URL location, ResourceBundle resources) { sliderA.setValue(50); sliderA.valueProperty().addListener(this::aChanged); for (int i = 0; i <= 100; i++) { comboBoxB.getItems().add(i);} comboBoxB.getSelectionModel().select(50); comboBoxB.getSelectionModel().selectedItemProperty().addListener(this::bChanged); scrollBarC.setValue(50); scrollBarC.valueProperty().addListener(this::cChanged); SpinnerValueFactory.IntegerSpinnerValueFactory valueFactory = new SpinnerValueFactory.IntegerSpinnerValueFactory(0, 100); valueFactory.setValue(50); spinnerD.setValueFactory(valueFactory); spinnerD.valueProperty().addListener(this::dChanged); textFieldE.setText("50"); textFieldE.textProperty().addListener(this::eChanged); } private void aChanged(ObservableValue observableValue, Number oldValue, Number newValue) { labelA.setText(Math.round(newValue.intValue()) + ""); rectangleA.setHeight(newValue.intValue() * 5); } private void bChanged(ObservableValue observableValue, Integer oldValue, Integer newValue) { labelB.setText(Math.round(newValue.intValue()) + ""); rectangleB.setHeight(newValue.intValue() * 5); } private void cChanged(ObservableValue observableValue, Number oldValue, Number newValue) { labelC.setText(Math.round(newValue.intValue()) + ""); rectangleC.setHeight(newValue.intValue() * 5); } public void dChanged(ObservableValue observable, Integer oldValue, Integer newValue) { labelD.setText(Math.round(newValue.intValue()) + ""); rectangleD.setHeight(newValue.intValue() * 5); } public void eChanged(ObservableValue observable, String oldValue, String newValue) { int value; try { if (oldValue.length() == 0) {oldValue = labelE.getText();} value = Integer.parseInt(newValue); if (value > 100 || value < 0) { textFieldE.setText(oldValue); return; } rectangleE.setHeight(value * 5); labelE.setText(newValue); } catch (NumberFormatException e) { if (textFieldE.getText().length() > 0) { textFieldE.setText(oldValue); } } } }