Créer un bouton personnalisé en Java avec JButton
Je suis en train de créer un bouton qui a une forme personnalisée (hexagone), mais sinon, agit comme un normal JButton serait (qui est, fonctionne avec un ActionListener).
J'ai créé une classe qui étend la classe AbstractButton, mais il ne semble pas être l'envoi d'événements à l'ActionListener quand je clique dessus. Si je change de classe pour étendre JButton il fonctionne parfaitement, mais c'vis de la façon que le bouton est affiché. Je suis en supposant qu'il existe une méthode que j'ai besoin de remplacer l'obtenir pour déclencher des événements, mais je ne peux pas comprendre ce que c'est.
- voir ici: stackoverflow.com/a/11742552/478765
Vous devez vous connecter pour publier un commentaire.
Vous devrez étendre
JButton
classe pasAbstractButton
. Essayez les choses suivantes et vous aurez idée.Le premier mouvement est à la sous-classe
JButton
.Puis, dans votre sous-classe, commencer par redéfinir le
paintComponent(Graphics)
méthode. Si vous voulez tout changement.Ensuite, remplacer
paintBorder(Graphics)
pour lui donner la forme d'un hexagone.this.setContentAreaFilled(false);
Si vous souhaitez créer un CustomButtonUI ensuite, vous avez à regarder
plus profond de la
BasicXxxUI
.annuler Liste des Couleurs de la JButton
Remarque il n'y a pas
paintComponent()
. C'est faux, il suffit d'utiliser lapaint()
méthode,Ci-dessous est juste un exemple simple, si c'est possible (pour le Métal JButton). Note pour le Métal LaF, je suis tellement paresseux et il n'y a pas quelque chose à propos de remplacer paintText, paintIcon, paintFocus, paintBorder (pour tous les funcionalities vous devez vérifier les méthodes de BasicButtonUI), et quelque chose que je mis à la ButtonModel, juste pour mon plaisir.
control-shift-right
. Dans l'éditeur, sélectionnez-la et cliquez sur le{}
icône. +1 exemple, btw.-Dswing.defaultlaf=javax.swing.plaf.metal.MetalLookAndFeel
pour voir le plein effet. Merci pour ce très bel exemple. +1ButtonUI
.Je sais que cette question a été répondu, mais vous voudrez peut-être regarder à l'aide des méthodes intégrées, et en utilisant des images pour attirer votre bouton dans différents états.
Voici un peu de code que j'ai utilisé pour générer un bouton personnalisé.
Vous pouvez ensuite ajouter une action auditeur normalement.
essayer un Jlabel et utiliser une image pour n'importe quelle forme!!