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 :

JComponent évolué, L&F


Sujet :

AWT/Swing Java

  1. #1
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 111
    Par défaut JComponent évolué, L&F
    Bonjour,

    Je commence a avoir une certaine experience dans le developpement de composant sur mesure. (de Java2D jusqu'a l'intégration dans les editeurs comme Matisse).

    J'aimerai aller plus loin en intégrant d'avantage mes composants dans l'environnement en utilisant le Look&Feel natif (recuperer les teintes de couleur principales, les styles d'angles ...etc...).

    Quelqu'un a t il deja exploré cette voie ?

  2. #2
    Membre chevronné Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Par défaut
    Il existe le UIManager qui donne des infos plus ou moins pertinentes suivant le Look&Feel.

  3. #3
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Sauf que pour les l&f natifs c'est un peu plus dur, l'UIManager n'est pas forcément super bien renseigné, car beaucoup de parties de composants sont crées à partir d'images au moyen d'API spécifiques et internes à Sun (pour le l&f Windows il s'agit de l'API UXTheme, pour le l&f GTK il s'agit d'un L&F Synth qui va piocher dans les ressources GTK)

  4. #4
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Citation Envoyé par eclesia Voir le message
    Quelqu'un a t il deja exploré cette voie ?
    Oui, à mon niveau bien sûr (je suis pas un graphiste), et, informatiquement parlant, je ne la trouve pas pratiquable.

    Le L&F est bon pour faire un environnement complet, et encore ; cela marche, mais reste difficile, en tous les cas c'est un gros boulot. Cela ne m'a pas paru adapté pour des demi-L&F, le concept manque de logique et de cohérence.

    Par exemple, les couleurs peuvent se définir à la fois dans le L&F et directement dans le composant. Pourquoi ? Quelle est la plus-value, où est-ce le mieux, à quoi rime l'un ou l'autre ? Mystère. Si on veut faire un composant perso qui s'adapte au contexte, c'est pas gagné du tout. Et passe encore pour la couleur, mais pour la transparence, les bords, la taille du composant, le focus, la situation est pire.

    Et, pour couronner le tout, les GUI Builder tels Matisse, pourtant conçus par Sun, ignorent complètement la notion de L&F : si tu dis de mettre un arrière plan de telle couleur, il sera de cette couleur quel que soit le L&F.

    Même les L&F qui sont fait pour ça sont pas pratiques, et de toutes façons, rien ne dit qu'un utilisateur les choisirait.

    Bref je ne trouve pas que le L&F soit la meilleure techno de swing et, pour moi, à moins d'être un génial, d'avoir 150 stagiaires à sa dispo, c'est pas jouable.

    Et maintenant, lorsque j'ai un composant à définir au niveau graphique, je me passe complètement de la notion de L&F, cela fonctionne aussi bien, c'est tout autant adaptable, et je gagne 99% de mon temps !

  5. #5
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Sinon pour faire propre et laisser la porte ouverte à des L&F tierces pour implémenter le look de tes composants, diriges toi vers les sources de Swingx.

    Ils ont fait un gros travail avec Kirill Grouchnikov et les gens de Synthetica pour que les UI de leurs composants soient aisément implémentables pour un L&F tierce. Ce qui a permis à substance et synthetica de proposer des add ons pour Swingx. Quoi qu'il en soit tu peux oublier la redéfinition directe de la méthode paintComponent et tu dois proposer un système à base d'UIDelegates, comme Swing le fait de base.

  6. #6
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Oui, excellente remarque de sinok, j'ai l'impression que swingx a mieux réfléchi a ces questions. Mais là, je n'ai aucune expérience pratique, je parle seulement d'après mes lectures et impressions !

  7. #7
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Swingx possède également un deuxième mécanisme, en plus de leurs delegates spécifiques (qui étendent XComponentUI qui propose plus de mécanismes que le componentUI Swing de base). Pour suivre un peu le travail réalisé il faut fouiller dans le forum de Swingx ou un certain nombre de posts impliquent Kirill, Jeanette, Mnathan, kschaefe, rah003
    Ce mécanisme est utilisé dans leurs UIDelegates par défaut et s'appelle LookAndFeelAddons. Il permet d'adapter une partie de l'UIDelegate à l'OS, le mécanisme est décrit ici. Il est issu à la base du travail réalisé par Frédéric Lavigne pour les l2fprod commons.

    Sinon pour voir comment implémenter un composant custo de façon propre il existe cet excellent de Kirill Grouchnikov: http://today.java.net/pub/a/today/20...component.html

  8. #8
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 111
    Par défaut
    merci beaucoup, je vais jeter un oeil a tout ca.

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 16/03/2004, 14h21
  2. Classe de tableau évoluée
    Par numberwan dans le forum Débuter
    Réponses: 2
    Dernier message: 03/04/2003, 16h15

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