Bonjour à tous
Je cherche depuis un moment déjà à créer un bouton avec une image en background. Ce que je voudrais c'est que le texte du bouton puisse changer suite à un clic. Mon problème est que je n'arrive pas à faire un bouton avec un background composé d'une image et un texte par dessus.
J'ai essayé pas mal de truc mais rien ne marche.
Je précise que je voudrais également que les dimensions de mon bouton correspondent à celles de l'image.
Voici le code actuel
et le code pour créer les boutons
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 import java.awt.Graphics; import java.awt.Image; import javax.swing.JButton; public class MonJButton extends JButton{ private static final long serialVersionUID = 1L; private Image backGround = null; public MonJButton(Image backGround){ this.backGround = backGround; this.setOpaque(false); } public void paint(Graphics g){ if ( backGround != null ){ g.drawImage(backGround, 0, 0, null); } super.paint(g); } }
et la méthode de chargement d'une image
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Image icon = loadImages(string); final MonJButton b = new MonJButton(icon); JPanel support = new JPanel (); support.add(b); b.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) { b.setText(b.getText()+" X"); } });
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 private Image loadImages(String imageFile ){ try{ MediaTracker mTrack = new MediaTracker(f); // load les image avant de les afficher //f est la JFrame //imageFile est le chemin d'accès de l'image Image image = f.getToolkit().getImage(imageFile); mTrack.addImage(image, 0); mTrack.waitForAll(); return image; } catch (Exception e){ System.out.println(" getimages : " + e ); } return null; }
Partager