Advertisement
Guest User

Untitled

a guest
May 23rd, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.76 KB | None | 0 0
  1. package fr.univ_amu.iut.exercice6;
  2.  
  3.  
  4. import javafx.application.Application;
  5. import javafx.beans.binding.Bindings;
  6. import javafx.beans.binding.NumberBinding;
  7. import javafx.beans.property.IntegerProperty;
  8. import javafx.beans.property.SimpleIntegerProperty;
  9. import javafx.scene.Scene;
  10. import javafx.scene.control.Slider;
  11. import javafx.scene.control.TextField;
  12. import javafx.scene.control.TextFormatter;
  13. import javafx.scene.layout.BorderPane;
  14. import javafx.scene.layout.Pane;
  15. import javafx.scene.shape.Circle;
  16. import javafx.stage.Stage;
  17. import javafx.util.converter.NumberStringConverter;
  18.  
  19. public class BidiBindingCircle extends Application {
  20.  
  21.     private Circle c = new Circle();
  22.     private Slider slider = new Slider();
  23.     private TextField textField = new TextField();
  24.  
  25.     private Pane pane = new Pane();
  26.     private BorderPane root = new BorderPane();
  27.     private Scene scene = new Scene(root);
  28.  
  29.  
  30.     private IntegerProperty valueSlider = new SimpleIntegerProperty();  // A
  31.     private IntegerProperty valueTextBox = new SimpleIntegerProperty();  // B
  32.  
  33.     @Override
  34.     public void start(Stage stage) throws Exception {
  35.         addPane();
  36.         addSlider();
  37.         addTextField();
  38.         createBindings();
  39.         configStage(stage);
  40.     }
  41.  
  42.     private void addTextField() {
  43.         textField.setText(valueTextBox.getValue().toString());
  44.         textField.setTextFormatter(new TextFormatter<String>(change -> {
  45.             change.setText(change.getText().replace(',', '.'));
  46.             String content = change.getControlNewText();
  47.             if (content.isEmpty() || Double.parseDouble(content) > 250)
  48.                 change.setText("");
  49.             return change;
  50.         }));
  51.         root.setBottom(textField);
  52.     }
  53.  
  54.     private void createBindings(){
  55.         c.centerYProperty().setValue(pane.getPrefHeight()/2);
  56.         c.centerXProperty().setValue(pane.getPrefWidth()/2);
  57.  
  58.  
  59.         Bindings.bindBidirectional(textField.textProperty(), slider.valueProperty(), new NumberStringConverter());
  60.         c.radiusProperty().bindBidirectional(slider.valueProperty());
  61.     }
  62.  
  63.     private void configStage(Stage stage) {
  64.         stage.setResizable(false);
  65.         stage.setScene(scene);
  66.         stage.setTitle("BidiBindingCircle");
  67.         stage.show();
  68.     }
  69.  
  70.     private void addSlider() {
  71.         root.setTop(slider);
  72.         slider.setMin(0);
  73.         slider.setMax(250);
  74.  
  75.         slider.setShowTickLabels(true);
  76.         slider.setShowTickMarks(true);
  77.         slider.setMajorTickUnit(50);
  78.  
  79.         slider.setMinorTickCount(4);
  80.         slider.setValue(0);
  81.     }
  82.  
  83.     private void addPane() {
  84.         pane.getChildren().add(c);
  85.         pane.setPrefWidth(500);
  86.         pane.setPrefHeight(500);
  87.         root.setCenter(pane);
  88.     }
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement