[JavaFX] Bouton personnalisé

Fermé
guatto - 4 sept. 2016 à 20:02
faseldi Messages postés 279 Date d'inscription dimanche 9 novembre 2014 Statut Membre Dernière intervention 3 janvier 2017 - 3 oct. 2016 à 22:10
Bonjour,
j'aurais besoin de votre aide s'il vous plait, comme l'indique le titre je veux réaliser un bouton avec des propriétés que j'aurai moi même ajoutées, j'explique mon bouton est à la base une classe qui hérite de "Pane", vous le savez peut-être mais contrairement au "Button" cette classe (Pane) n'a pas de méthode pour y ajouter du texte mais ce n'est pas ça le problème, moi ce que je veux c'est pouvoir ajouter une "Shape" au dessus de ma classe "Pane" et l'utiliser comme un bouton.
-Le problème c'est qu'on peut pas interagir avec la "Shape" pour lui donner des instructions (changement de couleur,modifier sa dimension ou bordure...) ou du moins j'arrive pas à le faire via mon fichier CSS.
-En conclusion je veux pouvoir changer les propriétés de mon shape qui est à l'intérieur du pane dés que le curseur entre dans les limites de ce dernier (pane).

Merci pour votre aide !



1 réponse

faseldi Messages postés 279 Date d'inscription dimanche 9 novembre 2014 Statut Membre Dernière intervention 3 janvier 2017 20
3 oct. 2016 à 22:10
Bonsoir,
déjà pour commencer, si c'est un bouton, pourquoi ne pas simplement extends JButton ?

public MonBOuton extends JButton{
}


Sache que le JButton, comme tous les Component, a une méthode repaint du profil suivant:
public void repaint(Rectangle r){...code...}

Tu met ta Shape dans le Rectangle (qui implements Shape, ça c'est super, tu as juste à faire r = Tashape;

Et pour ta seconde question, celle de faire un repaint à chaque fois, pourquoi pas.

il suffit de faire un mouseAdapter dans ce style:

tonBouton.addActionListener( new MouseAdapteur(){
/** les overrides qui vont bien **/
public void mouseEntered(MouseEvent e){
tonBouton.repaint();
}
}



Sache que le plus propre est de créer une nouvelle classe SourisSurMonBoutonController qui va extends de MouseAdapteur, et prendre en attribut ton bouton, pour rendre ton code plus maintenable

cf. voir MVC : https://fr.wikipedia.org/wiki/Mod%C3%A8le-Vue-Contr%C3%B4leur

MouseAdapter : https://docs.oracle.com/javase/7/docs/api/java/awt/event/MouseAdapter.html
0