IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

Comment une JToolbar change l'apparence d'un JButton ?


Sujet :

AWT/Swing Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Comment une JToolbar change l'apparence d'un JButton ?
    Salut,

    Lorsque vous ajoutez un JButton à un JToolBar, le bouton prend une apparence (différente de celle obtenue si vous l'ajoutez à un JPanel). J'ai créé un composant similaire à une JToolBar et je voudrais reproduire le même comportement.

    Problème : j'ai vérifié la classe JToolBar, et je ne trouve pas de code spécifique en charge de modifier l'apparence des composants ajoutés (changement spécifique de la méthode paint, du Border des JButton, du UI delegate ou que sais je encore) Je n'ai rien trouvé! Je ne comprends pas comment fonctionne une JToolBar sur point.

    Quelqu'un connaîtrait-il la solution ?

    Merci beaucoup,

    Hervé Guillaume

  2. #2
    Membre actif Avatar de Vikisme
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2007
    Messages : 172
    Points : 228
    Points
    228
    Par défaut
    Bonjour,

    Je suppose que le code définissant l'affichage du JButton suivant son contexte se trouve dans le Look and Feel...

    Je vois trois solutions à ce problème :

    1. Personaliser les JButton
    Redéfinir la méthode paint d'un JBouton spécialement adapter pour ta ToolBar. Le problème c'est que ça ne sera pas exactement le même que celui par défaut dans le Look and Feel, ça dépend donc de la portée de la toolbar (produit ? multi-plateforme ?)

    2. Personaliser le JPanel
    Redéfinir la méthode paintComponent du panel par exemple en donnant la propriété "setContentAreaFilled(false)" aux boutons ajoutés et en dessinant soit même les boutons (avec gestion de la souris survol et click)

    3. Utiliser un JToolBar
    Il faut que le composant englobant tes boutons n'hérite pas d'un JPanel mais d'un JToolBar. Dans ce cas il devrais par défaut hériter du mécanisme swing par défaut.
    (Lorsque l'on ajoute un bouton dans le panel, on peut l'ajouter dans un JToolBar qui ne contient que le JButton et rien d'autre si on souhaite vraiment garder un JPanel)

    Après peut-être qu'il y a moyen de changer le contexte dans la méthode paintComponent pour faire "croire" à swing qu'il doit peindre le bouton dans un contexte de JToolBar mais pour ça je ne sais pas comment faire...
    Tout passe, tout casse
    Le joint le cul lassent...


    http://www.myspace.fr/geampa_raler

Discussions similaires

  1. [Débutant] comment savoir si une variable change de valeur
    Par lou87 dans le forum C#
    Réponses: 6
    Dernier message: 30/03/2012, 10h25
  2. [MySQL] [Débutant] Comment mettre à jour un une table lorsqu'une autre change
    Par pierrot10 dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 07/09/2010, 11h00
  3. comment ajouter une image (logo) tout à droite d'une JToolbar ?
    Par _LittleFlea_ dans le forum Composants
    Réponses: 6
    Dernier message: 09/11/2009, 17h09
  4. Réponses: 2
    Dernier message: 19/12/2005, 22h54
  5. Réponses: 9
    Dernier message: 14/10/2005, 18h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo