Bonjour,
Je galère un peu étant donné que je débute et donc je viens vers vous pour une nouvelle question.
J'ai un bouton qui ouvre l'arborescence de l'ordinateur pour que l'utilisateur puisse picoher une image.
Jusque là pas de soucis, je récupère bien l'image et je la copie dans un autre répertoire.
1) Est ce qu'il y a moyen de spécifier le chemin de destination avec un chemin relatif et non absolu? ce qui donnerait un réel intérêt quand je déploierai l'appli?
2) J'ai une classe qui hérite de jPanel
Et donc au moment où sélectionne une image, la copie se passe bien et je veux raffraichir mon jpanel avec l'image sélectionnée en faisant ceci mais rien ne s'affiche.
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 public class customPanel extends JPanel implements Serializable{ Image image = null; public customPanel(Image image) { this.image = image; } public customPanel() { } public void setImage(Image image){ this.image = image; } public Image getImage(Image image){ return image; } public void paintComponent(Graphics g) { super.paintComponent(g); //paint background if (image != null) { //there is a picture: draw it int height = this.getSize().height; int width = this.getSize().width; //g.drawImage(image, 0, 0, this); //use image size g.drawImage(image,0,0, width, height, this); } } }
Merci de votre aide qui me débloquerai
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 //Create a file chooser final JFileChooser fc = new JFileChooser(); fc.setDialogTitle("Choisir une affiche"); //bouton servant à ouvrir la popup pour sélectionner une image JButton btChooseImg = new JButton("Choisir une image"); btChooseImg.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { int returnVal = fc.showOpenDialog(fc); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = fc.getSelectedFile(); //This is where a real application would open the file. System.out.println("Opening: " + file.getAbsolutePath()); String dtFile = "chemin absolu/"+ file.getName();//getClass().getResourceAsStream("/affiche/"+ file.getName()) CopyFile cp = new CopyFile(); cp.copyfile(file.getAbsolutePath(), dtFile); BufferedImage img = null; try { img = ImageIO.read(new File("affiche/"+ file.getName()));//img a bien été trouvé } catch (IOException e) { System.out.println("error."); } customPanel jPanelImage = new customPanel(img); jPanelImage.setBounds(391, 58, 180, 244); panDetail.add(jPanelImage); } else { System.out.println("Open command cancelled by user."); } } });
Partager