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

Composants Java Discussion :

Look & Feel impose son alignement des textes


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 343
    Par défaut Look & Feel impose son alignement des textes
    Bonjour,

    j'ai construit une JTable, avec un en-tête, dont j'ai défini l'alignement du texte en mode centré:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    enTeteTable.setAlignmentY(CENTER_ALIGNMENT);
    Cela fonctionne parfaitement tant que je garde l'apparence par défaut "Metal". Lorsque je change le 'Look & Feel' en mode "Nimbus", l'alignement du texte dans l'en-tête de la table est à gauche.
    Pourtant lorsque je débogue l'application, je constate que le style est défini avant que ne soit construit ma table, et donc mon centrage personnel de l'en-tête.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    public static void main(String[] args)
    {
      // Tentative de mise en place du Look & Feel Nimbus
      for (UIManager.LookAndFeelInfo LAF : UIManager.getInstalledLookAndFeels())
      {
        if ("Nimbus".equals(LAF.getName()))
        {
          try
          {
            UIManager.setLookAndFeel(LAF.getClassName());
            break;
          }
          catch (Exception e)
          {
            // On ne change rien
          }
        }
      }
     
     
      new maFenetre().setVisible(true);
    }
    Cependant si je prend un style "Windows" ou "WindowsClassic", le centrage de l'en-tête est respecté.

    Quelqu'un a-t-il déjà été confronté à ce problème ? Y a-t-il une explication voir une solution ?

    Merci & @ bientôt.

  2. #2
    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
    C'est surement du au renderer utilisé par nimbus pour le header de ta JTable.
    Et il n'est pas grand chose que tu puisse y faire a moins de changer le renderer (mais dans ce cas là il faut tout redéfinir).

    Bref je ne suis pas sur que ça en vaille la peine. D'ailleurs as-tu une raison particulière de vouloir tout afficher à droite?

  3. #3
    Membre Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 343
    Par défaut
    Merci pour cette réponse même si elle ne résoud pas mon problème

    En fait, c'est un alignement centré que je cherche à faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    enTeteTable.setAlignmentY(CENTER_ALIGNMENT);
    Ce qui est une chose banale dans un tableur. D'ailleurs, avec le Look & Feel par défaut, le texte de l'en-tête est centré naturellement.
    Je trouve dommage qu'on ne puisse décider de cela avec d'autre L&F. Ben tant pis, je vais m'en passer.

    @ bientôt...

  4. #4
    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
    En effet, toutefois une JTable n'est pas forcément un composant prévu à la base pour servir de tableur. Tu t'en rendras très vite compte au niveau des concepts de renderers/editors & cie.

    Ensuite Nibus est un L&F pas exempt de bugs dans l'absolu, un peu bourrin sur les bords aux dires de developpeurs qui doivent l'intégrer dans leurs composants tierce partie.

    Tu peux éventuellement signaler un bug sur ce L&F dans l'outil adapté coté Oracle. http://bugs.sun.com/

  5. #5
    Membre Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 343
    Par défaut
    Je ne sais pas trop si c'est un bogue de "Nimbus" car en fait, j'ai le même problème avec le L&F "Windows". Le texte des en-tête est aligné à droite, et il est impossible de le centrer.
    Quant au style par défaut, "Metal", le texte de l'en-tête est centré, et il est impossible de le positionner à gauche par exemple.
    Je me demande si ce n'est pas plutôt un problème avec le setter setAlignementX() qui n'a apparemment aucun effet, quelque soit le L&F.

    M'enfin bref, ce paramètre est incontrôlable semble-t-il.

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

Discussions similaires

  1. Alignement des textes et valeurs
    Par fadsys dans le forum PureBasic
    Réponses: 1
    Dernier message: 09/08/2009, 07h16
  2. Tcombobox alignement des textes
    Par j.p.mignot dans le forum C++Builder
    Réponses: 2
    Dernier message: 24/01/2009, 14h45
  3. StringGrid et alignement des textes
    Par j.p.mignot dans le forum Composants VCL
    Réponses: 1
    Dernier message: 06/02/2008, 15h26
  4. [Look and feel] Texte des JLabels en gras
    Par aliasjcdenton dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 26/01/2006, 11h49

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