bonjour tout le monde, je veux savoir s'il y un moyen d'avoir un Jbutton avec deu image une de fond, et une autre comme icon,et je veux que les deux soient superposées sans qu'une cache l'autre.
j'ai pas mal cherché dans le net, j'ai conclu qu'il faut créer une classe fille de Jbutton où on surdéfinit la méthode paintComponent, ensuite je fait appel a mon bouton mais l'image définit sur mon nouveau type cache toujour l'icone.
voila mon nouveau type:
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 import java.awt.Graphics; import java.awt.Image; import javax.swing.ImageIcon; import javax.swing.JButton; public class myButton extends JButton { // !!! on doit étendre le composant dans lequel on veut insérer une image de fond private Image img; private String imageName; //Un constructeur pour choisir plus simplement l'image public SDZ(String imageName) { img = new ImageIcon(getClass().getResource(imageName)).getImage(); } //On doit redéfinir la méthode paintComponent() pour les composant swing !!! et paint() pour awt @Override protected void paintComponent(Graphics g) { super.paintComponent(g); if (img == null) return; g.drawImage(img, 0, 0, getWidth(), getHeight(), this); } }
pour mettre l'icone:
myButton mb=new myButton("deg.png");
ImageIcon icon= new ImageIcon(getClass().getResource("nohit.png"));
mb.setIcon(icon);
mon problème c'est que mon icon est toujours caché par l'image du fond que j'ai mis dans le constructeur de mon nouveau button, dans ce cas "deg.png"
Merci d'avance
Partager