Advertisement
Adam9383

CtvrAObrazek

Jan 22nd, 2020
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.83 KB | None | 0 0
  1. public class FXMLDocumentController implements Initializable {
  2.    
  3.     @FXML
  4.     private Pane pane;
  5.    
  6.     ObservableList<Rectangle> obdelniky;
  7.     private final String[] typy  = {"Plna", "Carkovana", "Teckovana"};
  8.     double startX;
  9.     double startY;
  10.     @FXML
  11.     private ColorPicker colorPicker;
  12.     @FXML
  13.     private ComboBox<String> cbOkraj;
  14.     private Rectangle rec;
  15.    
  16.    
  17.  
  18.    
  19.     @Override
  20.     public void initialize(URL url, ResourceBundle rb) {
  21.         obdelniky = FXCollections.observableArrayList();
  22.         cbOkraj.getItems().addAll(typy);
  23.         cbOkraj.getSelectionModel().selectFirst();
  24.         doGradient();
  25.     }    
  26.  
  27.     @FXML
  28.     private void mouseDragged(MouseEvent event) {
  29.         double x = Math.abs(event.getX() - startX);
  30.         double y = Math.abs(event.getY() - startY);
  31.        
  32.         rec.setWidth(2 * x);
  33.         rec.setHeight(2 * y);
  34.        
  35.         rec.setX(startX - x);
  36.         rec.setY(startY - y);
  37.        
  38.     }
  39.  
  40.     @FXML
  41.     private void mousePressed(MouseEvent event) {
  42.             if (event.isPrimaryButtonDown()) {
  43.                 startX = event.getX();
  44.                 startY = event.getY();
  45.  
  46.                 rec = new Rectangle();
  47.                
  48.                 rec.setWidth(2);
  49.                 rec.setHeight(1);
  50.                 rec.setStrokeWidth(2);
  51.                 switch (cbOkraj.getSelectionModel().getSelectedItem()) {
  52.                     case "Plna":
  53.                         break;
  54.                     case "Carkovana":
  55.                         rec.getStrokeDashArray().addAll(20d, 20d);
  56.                         break;
  57.                     case "Teckovana":
  58.                         rec.getStrokeDashArray().addAll(5d, 5d);
  59.                         break;
  60.                 }
  61.  
  62.                 rec.setStroke(colorPicker.getValue());
  63.                 rec.setFill(Color.rgb(127, 127, 127));
  64.                 Rectangle rext = rec;
  65.                 rext.setOnMouseClicked(mouse -> {
  66.                     if (mouse.getButton() == MouseButton.SECONDARY) {
  67.                         FileChooser fileChooser = new FileChooser();
  68.                         fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("all", "*.*"));
  69.                         File file = fileChooser.showOpenDialog(IPOG_Zkouska_CtverceSobrazkem.stage);
  70.                         if(Objects.nonNull(file)) {
  71.                             Image newImage = new Image(file.toURI().toString());
  72.                             if (Objects.isNull(newImage) || newImage.isError()) {
  73.                                 Alert alert = new Alert(Alert.AlertType.ERROR);
  74.                                 alert.setHeaderText(null);
  75.                                 alert.setContentText("Neplaný soubor!");
  76.                                 alert.showAndWait();
  77.                             } else {
  78.                                 ImageView iv = new ImageView(newImage);
  79.                                 iv.setFitHeight(rext.getHeight());
  80.                                 iv.setFitWidth(rext.getWidth());
  81.                                 rext.setFill(new ImagePattern(iv.getImage()));
  82.                             }
  83.  
  84.                         }
  85.                     }
  86.                 });
  87.  
  88.                
  89.                 pane.getChildren().add(rext);
  90.                 obdelniky.add(rext);
  91.  
  92.             }
  93.        
  94.        
  95.     }
  96.  
  97.     private void doGradient() {
  98.         Stop stops[] = {new Stop(0, Color.WHITE),
  99. //            new Stop(0.25, Color.GREEN),
  100. //            new Stop(0.5, Color.WHITE),
  101. //            new Stop(0.75, Color.GREEN),
  102.             new Stop(1, Color.BLUE)};
  103.        
  104.        
  105.        
  106.         LinearGradient grad = new LinearGradient(0, 1, 1, 1, true, CycleMethod.NO_CYCLE, stops);
  107.         pane.setBackground(new Background(new BackgroundFill(grad, CornerRadii.EMPTY, Insets.EMPTY)));
  108.     }
  109.    
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement