Bonjour
J'ai une Classe Bouton qui me permet d'afficher une image sur mes boutons:
Le problème est que pour chaque bouton je dois créer une Classe spécifique puisque je mets le chemin vers l'image au niveau de la méthode paintComponent().
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 public class BoutonImage extends JButton{ private Image img; public BoutonImage(){ super(""); setContentAreaFilled(false); } public void paintComponent(Graphics g){ Color c = g.getColor(); g.setColor(Color.decode("#f9f9f9")); g.fillRect(0,0,700,460); g.setColor(c); try { Image img1 = ImageIO.read(new File("images\\ajout_user.png")); g.drawImage(img1, 10, 45, this); //Pour une image de fond //g.drawImage(img, 0, 0, this.getWidth(), this.getHeight(),this); } catch (IOException e) { e.printStackTrace(); } } }
La solution serait sans doute de définir un chemin lors de l'instanciation du bouton, comme ceci:
Et ensuite:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public class Accueil extends JFrame{ BoutonImage btAjout = new BoutonImage("images\\ajout_user.png"); }
Sauf que je ne sais pas comment faire pour transmettre le chemin récupéré à la méthode paintComponent().
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 public class BoutonImage extends JButton{ private Image img; public BoutonImage(String chemin){ super(""); setContentAreaFilled(false); } public void paintComponent(Graphics g){ Color c = g.getColor(); g.setColor(Color.decode("#f9f9f9")); g.fillRect(0,0,700,460); g.setColor(c); try { Image img1 = ImageIO.read(new File("images\\ajout_user.png")); g.drawImage(img1, 10, 45, this); //Pour une image de fond //g.drawImage(img, 0, 0, this.getWidth(), this.getHeight(),this); } catch (IOException e) { e.printStackTrace(); } } }
Merci







Répondre avec citation




Partager