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 :

[SWING] Modifier l'apparence de certains composants


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 87
    Par défaut [SWING] Modifier l'apparence de certains composants
    Bonjour à tous!
    Voilà, je suis en train de développer une nouvelle interface Java et j'aurais voulu modifier l'apprence de certains composants de mon interface... je m'explique: je voudrais par exemple arrondir les angles de mes boutons ou encore arrondir les onglets de mon JTabbedPane!

    En fait, au début je voulais utiliser un nouveau Look and Feel mais le problème est que je ne veux pas changer l'apparence de tous mes composants donc j'aurais voulu savoir dans un premier temps si c'était possible et si il existait des méthodes qui permettent cela? J'aurais donc voulu me passer d'un nouveau Look and feel...
    Si ce que je demande n'est pas possible, pouvez vous me donner des conseils (par exemple sur la façon de créer son propre Look and Feel)?

    Merci d'avance et bon après-midi à tous...

  2. #2
    Gfx
    Gfx est déconnecté
    Expert confirmé
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    Tu peux faire des "bouts" de look and feel. Le plus simple est d'étendre une des classes *UI. Par exemple pour un bouton, BasicButtonUI ou MetalButtonUI. Ensuite il faudra faire monBouton.setUI(MaButtonUI.getUI()). Il y a tout un tas de détails mais c'est en gros la solution la plus réutilisable.

    Une autre solution, que j'affectionne particulièrement, est d'étendre les composants Swing et de surcharger leur méthode paintComponent(). Cette technique est cependant parfois difficile pour des composants complexes. De plus cela ne permet pas de modifier des composants composés. Par exemple un JScrollPane contient des JScrollBar. Pour changer l'apparence de ces dernières il est bien plus facile de passer par un délégué d'UI (les *UI mentionnées précédemment).

    J'ai écrit un article sur le sujet qui se trouve là-dedans : http://www.progx.org/users/Gfx/articles/java.zip

    Cherche l'article situé dans le dossier "GUI". Il est court mais présente un exemple de délégué.

    Dans peu de temps maintenant, Sun et moi-même allons diffuser le code source de l'application dont tu peux voir des captures ci-dessous :









    Pour créer cette interface j'ai utilisé les deux techniques citées précédemment suivant mes besoins. Les boutons sont par exemples des classes qui héritent de JButton. Les barres de défilement utilisent au contraire des délégués d'UI. Cela devrait faire un bon exemple pour montrer comment créer une interface vraiment personnalisée en Swing

    Parmi les composant Swing utilisés dans ces captures il y a : JButton, JList, JPanel, JScrollBar, JScrollPane, JTextField, JSlider et JFrame.

  3. #3
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 87
    Par défaut
    OK, merci pour tes explications!

    Par contre, je ne vois pas exactement comment faire pour faire des "bouts" de L&F... tu me dis par exemple d'étendre la classe MetalButtonUI mais c'est là que ne vois pas comment faire! Tu peux m'aider? Ou me donner un tout petit exemple?

    Merci beaucoup...

  4. #4
    Membre chevronné Avatar de spekal
    Inscrit en
    Mai 2005
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 502
    Par défaut
    Je rebondis par rapport à tout ce que dit Gfx...

    Et qu'en est-il par rapport à l'usage du Look&Feel Synth ? Qu'en penses-tu ? Est-ce une approche possible pour faire ce que cherche rprom, et dans ce cas pourquoi ne l'as-tu pas employé dans ton appli ?

  5. #5
    Gfx
    Gfx est déconnecté
    Expert confirmé
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    Parce que j'ai bossé sur Synth pendant un an chez Sun et que j'en avais marre de l'utiliser alors j'ai fait autrement Je voulais en outre essayer une autre approche, par injection de ressource. Le résultat est le projet Fuse : http://fuse.dev.java.net

    Exemple d'utilisation de Fuse ici : http://www.jroller.com/page/gfx?entry=fuse_swing_demo

  6. #6
    Membre chevronné Avatar de spekal
    Inscrit en
    Mai 2005
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 502
    Par défaut
    Mais, à part le fait qu'on en ait marre de Synth après un an de travail dessus, penses-tu que ce soit une bonne approche, disons, les 6 premiers mois ? Quels sont ces avantages et inconvénients, tels que tu les a vus à, disons, 10 mois de travail ? (plaçons nous tout de même avant la phase de rejet )

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [D7] Modifier l'apparence des composants
    Par dacid dans le forum Delphi
    Réponses: 7
    Dernier message: 09/05/2007, 09h57
  2. [C#] Comment modifier l'apparence d'un DataGrid?
    Par DBBB dans le forum ASP.NET
    Réponses: 8
    Dernier message: 15/07/2005, 14h41
  3. [Swing] récupérer une image d'un composant
    Par klemouf dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 16/09/2004, 10h24
  4. Réponses: 4
    Dernier message: 27/05/2004, 15h00
  5. [Swing] Mettre une police à tous les composants
    Par MrEddy dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 02/05/2004, 15h21

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