Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package fr.univ_amu.iut.exercice6;
- import javafx.application.Application;
- import javafx.beans.binding.Bindings;
- import javafx.beans.binding.NumberBinding;
- import javafx.beans.property.IntegerProperty;
- import javafx.beans.property.SimpleIntegerProperty;
- import javafx.scene.Scene;
- import javafx.scene.control.Slider;
- import javafx.scene.control.TextField;
- import javafx.scene.control.TextFormatter;
- import javafx.scene.layout.BorderPane;
- import javafx.scene.layout.Pane;
- import javafx.scene.shape.Circle;
- import javafx.stage.Stage;
- import javafx.util.converter.NumberStringConverter;
- public class BidiBindingCircle extends Application {
- private Circle c = new Circle();
- private Slider slider = new Slider();
- private TextField textField = new TextField();
- private Pane pane = new Pane();
- private BorderPane root = new BorderPane();
- private Scene scene = new Scene(root);
- private IntegerProperty valueSlider = new SimpleIntegerProperty(); // A
- private IntegerProperty valueTextBox = new SimpleIntegerProperty(); // B
- @Override
- public void start(Stage stage) throws Exception {
- addPane();
- addSlider();
- addTextField();
- createBindings();
- configStage(stage);
- }
- private void addTextField() {
- textField.setText(valueTextBox.getValue().toString());
- textField.setTextFormatter(new TextFormatter<String>(change -> {
- change.setText(change.getText().replace(',', '.'));
- String content = change.getControlNewText();
- if (content.isEmpty() || Double.parseDouble(content) > 250)
- change.setText("");
- return change;
- }));
- root.setBottom(textField);
- }
- private void createBindings(){
- c.centerYProperty().setValue(pane.getPrefHeight()/2);
- c.centerXProperty().setValue(pane.getPrefWidth()/2);
- Bindings.bindBidirectional(textField.textProperty(), slider.valueProperty(), new NumberStringConverter());
- c.radiusProperty().bindBidirectional(slider.valueProperty());
- }
- private void configStage(Stage stage) {
- stage.setResizable(false);
- stage.setScene(scene);
- stage.setTitle("BidiBindingCircle");
- stage.show();
- }
- private void addSlider() {
- root.setTop(slider);
- slider.setMin(0);
- slider.setMax(250);
- slider.setShowTickLabels(true);
- slider.setShowTickMarks(true);
- slider.setMajorTickUnit(50);
- slider.setMinorTickCount(4);
- slider.setValue(0);
- }
- private void addPane() {
- pane.getChildren().add(c);
- pane.setPrefWidth(500);
- pane.setPrefHeight(500);
- root.setCenter(pane);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement