Bonsoir je suis débutante en javaFX et mon problème c'est d'ajouter le nom de l'image qu'on ajouter avec la methode openImage dans notre scene (image+son nom) et plus ajouter un filtre pour qu'elle devient noir et blanc en la sauvegardentet merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115 package tp2; import java.io.File; import java.net.URL; import java.util.ResourceBundle; import javafx.event.ActionEvent; import javafx.event.Event; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.geometry.Rectangle2D; import javafx.scene.control.Label; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.input.MouseEvent; import javafx.scene.input.ScrollEvent; import javafx.scene.layout.BorderPane; import javafx.stage.FileChooser; /** * * @author L540 */ public class FXMLDocumentController { private Image currentImage; private int currentRotation = 0; @FXML ImageView imageView; @FXML BorderPane borderPane; @FXML private Label label; private double zoomInMultiplier = 1.15; private double zoomOutMultiplier = 0.85; //Variables for mouse movement. private double mouseDragEnteredX; private double mouseDragEnteredY; private int rotateDegree = 30; //Degrees to rotate; @FXML public void openImage(Event event) { File file; FileChooser fileChooser = new FileChooser(); file = fileChooser.showOpenDialog(null); //User selects file from explorer. currentRotation = 0; //new image will load in straight. imageView.setRotate(currentRotation); currentImage = new Image(file.toURI().toString()); imageView.setImage(currentImage); imageView.setViewport(new Rectangle2D(0,0,currentImage.getWidth(), currentImage.getHeight())); imageView.setFitHeight(currentImage.getHeight()); imageView.setFitWidth(currentImage.getWidth()); TP2.getStage().setTitle(file.getName()); //sets filename as window title. } @FXML public void handleZoomIn(Event event) { imageView.setFitHeight(imageView.getFitHeight()*zoomInMultiplier); imageView.setFitWidth(imageView.getFitWidth()*zoomInMultiplier); } @FXML public void handleZoomOut(Event event) { imageView.setFitHeight(imageView.getFitHeight()*zoomOutMultiplier); imageView.setFitWidth(imageView.getFitWidth()*zoomOutMultiplier); } @FXML public void handleScrollOnImage(ScrollEvent event) { if(event.getDeltaY() > 0){ //scrolling forward handleZoomIn(event); } if(event.getDeltaY() < 0){//scrolling backward handleZoomOut(event); } } public void handleMouseDrag(MouseEvent event) { double changeX = -(mouseDragEnteredX- event.getSceneX()); double changeY = -(mouseDragEnteredY- event.getSceneY()); borderPane.getCenter().setTranslateX(changeX); borderPane.getCenter().setTranslateY(changeY); } @FXML public void handleDragEntered(MouseEvent event) { mouseDragEnteredX = event.getSceneX(); mouseDragEnteredY = event.getSceneY(); } @FXML public void handleClickLeftRotate(Event event) { currentRotation += -rotateDegree; imageView.setRotate(currentRotation); } @FXML public void handleClickRightRotate(Event event) { currentRotation += rotateDegree; imageView.setRotate(currentRotation); } @FXML public void delete(Event event){ imageView.imageProperty().set(null); } }
Partager