Arrondir UN bouton

Résolu
cs_redbar Messages postés 112 Date d'inscription mardi 26 janvier 2010 Statut Membre Dernière intervention 26 mai 2014 - 28 avril 2011 à 16:38
cs_redbar Messages postés 112 Date d'inscription mardi 26 janvier 2010 Statut Membre Dernière intervention 26 mai 2014 - 4 mai 2011 à 18:10
Bonjour à tous
S'il vous plait, j'ai besoin d'aide.
Je voudrais améliorer mes IHM avec des bouton arrondis aux bord vue que en java les bouton on des bords à angle droit mais je ne sais pas comment y arriver.
Pouvez-vous m'aider à avoir une source qui pourra m'aider ou comment faire quelle fonction utiliser.
merci

5 réponses

cs_jojolemariole Messages postés 519 Date d'inscription mercredi 21 mars 2007 Statut Membre Dernière intervention 19 décembre 2016 25
28 avril 2011 à 17:43
Je viens de me rappeler que j'avais posté une source avec un bouton paramétrable avec différentes icônes :

http://files.codes-sources.com/fichier.aspx?id=51875&f=conway%2fpresentation%2fBoutonLecteur.java

le projet en entier qui contient les icônes :
http://www.javafr.com/codes/JEU-VIE_51875.aspx
3
cs_jojolemariole Messages postés 519 Date d'inscription mercredi 21 mars 2007 Statut Membre Dernière intervention 19 décembre 2016 25
28 avril 2011 à 17:38
Salut,

Avec le LookAndFeel Nimbus (disponible par défaut à partir de Java 1.6 si je ne m'abuse), les boutons sont légèrement arrondis.

Ci-dessous une fonction utile qui permet de changer le LookAndFeel :

/**
 * Tente d'appliquer un look and feel en le recherchant par son nom dans la
 * liste des look and feel installes.
 * 
 * Ne fait rien si le aucun des look and feel installes ne porte le nom
 * fourni.
 * 
 * @param nom
 *            nom du look and feel a appliquer
 * @throws UnsupportedLookAndFeelException
 * @throws IllegalAccessException
 * @throws InstantiationException
 * @throws ClassNotFoundException
 */
public static void setLookAndFeelParNom(String nom) throws ClassNotFoundException,
InstantiationException, IllegalAccessException, UnsupportedLookAndFeelException {

LookAndFeelInfo[] informationsLnf = UIManager.getInstalledLookAndFeels();

String nomLnf;

for (LookAndFeelInfo informationLnf : informationsLnf) {

nomLnf = informationLnf.getName();

if (nomLnf.equals(nom)) {

String classeLnf = informationLnf.getClassName();
UIManager.setLookAndFeel(classeLnf);
break;

}

}

}


Sinon tu crées une classe qui étend JButton et tu surcharges la méthode paintComponent en dessinant le bouton comme tu veux en tenant compte des différents états du bouton. Avec cette méthode, ça peut être utile de surcharger contains(x, y) pour que la zone "cliquable" corresponde au dessin.

Tu peux aussi indiquer les différentes icônes à utiliser en fonction de l'état :
setPressedIcon
setSelectedIcon
...
Tout en faisant disparaître le fond et le bord du bouton :
setFocusPainted(false)
setContentAreaFilled(false)
setBorderPainted(false)

Voilà déjà pas mal de pistes.

Cordialement,
Jonathan Guéhenneux
0
cs_redbar Messages postés 112 Date d'inscription mardi 26 janvier 2010 Statut Membre Dernière intervention 26 mai 2014
29 avril 2011 à 11:27
Bonjour jojolemariole
merci pour ces piste de solution.
j'essaie et je t'informe du resultat
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
29 avril 2011 à 18:26
Tu peux jeter un oeil à ces sources qui te donneront entre autre des boutons ronds.

//Différents boutons (tutoriel)
http://www.javafr.com/codes/PERSONALISER-COMPOSANTS-SWING_51830.aspx

Un ensemble de boutons personalisés
http://www.javafr.com/codes/JBUTTON-PERSONNALISES_51931.aspx

(Si tu veux que ton bouton ne soit cliquable que sur la zone ronde, surcharge la méthode contains(int x, int y) dans ta classe qui étend bouton pour qu'elle retourne true lorsque tu es dans la partir cliquable)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_redbar Messages postés 112 Date d'inscription mardi 26 janvier 2010 Statut Membre Dernière intervention 26 mai 2014
4 mai 2011 à 18:10
Bonsoir

je viens de faire un premier bouton aux bord arrondir en ecrivant une classe qui etends JButton
merci JOJOLEMARIOLE

le Tuto que m'a indiquer julien39 n'est pas aussi mal
maintenant j'ai plusieurs source pour faire des bouton aux bords arrondi.

Merci beaucoup les gars
0
Rejoignez-nous