55 votes

Java: utilisation d'une image comme un bouton

Je voudrais utiliser une image comme un bouton en Java, et j'ai essayé de faire ceci:

BufferedImage buttonIcon = ImageIO.read(new File("buttonIconPath"));
button = new JButton(new ImageIcon(buttonIcon));

Mais cela montre le bouton derrière l'image, je voudrais seulement l'image de la fonction que le bouton, comment puis-je faire cela?

Merci à l'avance.

EDIT: SOLUTION TROUVÉE

Une combinaison de jzd réponse et quelque chose d'autre que j'ai trouvé a résolu le problème:

button.setBorder(BorderFactory.createEmptyBorder());
button.setContentAreaFilled(false);

Cela a fonctionné pour moi, merci pour vos réponses!

28voto

jzd Points 17369

Supprimer la bordure de la sorte:

button.setBorder(BorderFactory.createEmptyBorder());

9voto

thotheolh Points 802

Une suggestion serait de définir l'Image comme d'une étiquette et d'ajouter un écouteur de souris à l'étiquette pour détecter les clics.

Exemple:

ImageIcon icon = ...;

JLabel button = new JLabel(icon);

button.addMouseListener(new MouseAdapter() {
  @Override
  public void mouseClicked(MouseEvent e) {
     ... handle the click ...
  }
});

1voto

StanislavL Points 31343

buttonIcon.setBorder(nouveau EmptyBorder(0,0,0,0));

1voto

camickr Points 137095
button.setBorderPainted( false );

1voto

unleashed Points 81

Cela peut être fait facilement dans netbeans par la définition de la contentAreaFilled valeur False à la Propriété

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X