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 :

probleme de jcombobox


Sujet :

AWT/Swing Java

  1. #1
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 56
    Points : 47
    Points
    47
    Par défaut probleme de jcombobox
    salut tous,

    j'ai un jcombobox qui est remplis par des donnees en arabe(de droite a gauche) donc je veut que l'orientation soit de R_TO_L.

    merci pour le help

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    C'est a dire ? Tu veux que le texte s'affiche de gauche<-droite (ce qui devrait etre le cas par defaut avec de l'arabe) ? ou que la fleche de la combo soit sur la gauche ?

    - dans le premier cas, ca devrait normalement etre le cas par defaut, les renderer de texte Java etant capables de detecter le texte s'affichant de gauche<-droite ou bidirectionnel (ex : melange de romain et d'arabe). Si ce n'est pas le cas, essaie de mettre la Locale de la combo box a une langue arabe (lang_ar je crois, en general pas besoin de specifier un code de pays) ou de modifier son ListCellRenderer (idem en specifiant/forcant la Locale).

    - pour le second cas, n'ayant jamais vu d'interface graphique en arabe, hebreu ou l'une des autre langues s'ecrivant gauche<-droite, j'ignore s'il est de convention (ex : GUI design guidelines) de mettre la fleche de la combo de l'autre cote du composant ou s'il reste du meme cote que dans les langues s'ecrivant de gauche->droite. Essaie quand meme en modifiant la Locale du composant, on ne sait jamais.

    Voir :
    java.awt.ComponentOrientation
    java.util.Locale
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  3. #3
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 56
    Points : 47
    Points
    47
    Par défaut
    merci bouye,

    Dans mon cas j'ai reussit a mettre le fleche de l'autre cote de la combobox mais je veut que les donnees dans le combox soient aligner à droite.
    avec ce message il y a une image de ce combox que je reuissit a faire.
    Images attachées Images attachées  

  4. #4
    Membre expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Points : 3 919
    Points
    3 919
    Par défaut
    Salut,

    Est-ce que tu pourrais poster le code où tu remplis ta ComboBox?
    Pas de questions technique par MP, les forums sont là pour ça.

  5. #5
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Bizarre, l'un aurai du se faire avec l'autre. Si tu redefini ton propre ListCellRenderer en utilisant DefaultListCellRenderer (qui herite de JLabel) tu devrais pouvoir specifier l'alignement a droite ou a gauche du texte.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  6. #6
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 56
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par bouye
    Bizarre, l'un aurai du se faire avec l'autre. Si tu redefini ton propre ListCellRenderer en utilisant DefaultListCellRenderer (qui herite de JLabel) tu devrais pouvoir specifier l'alignement a droite ou a gauche du texte.
    merci pour vous de me rependre, mais le probleme que j'utilise jdeveloper10g et il remplit automatiquement le combobox de puis la base de donnees.

  7. #7
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Si tu as une reference sur la combo, tu peux manuellement changer le ListCellRenderer par un tien customise qui teste l'affichage avec un alignement a droite.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    combo.setRenderer(new DefaultListCellRenderer() {
      /** {@ineheritDoc}
       */
      @Override public void getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
         super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
         setHorizontalAlignment(RIGHT); //voir commentaires plus bas.
         return this;
      }
    });
    La valeur par defaut de l'alignement horizontal n'est ni RIGHT, ni LEFT. C'est LEADING qui est sense s'adapter a la Locale active. Donc si la Locale du composant n'est pas mis a une langue arabe, il est normal que l'alignement se fasse a gauche si la Locale par defaut (celle du systeme) est le francais par exemple.

    A voir egalement s'il s'avere necessaire de modifier l'editor (pour quand le menu deroulant n'est pas deplie).

    Dans la mesure du possible essaie cependant juste en modifiant la Locale de la combo avant de faire des modifications lourdes. Si ca se trouve tout fonctionnera bien du premier coup.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  8. #8
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 56
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par bouye
    Si tu as une reference sur la combo, tu peux manuellement changer le ListCellRenderer par un tien customise qui teste l'affichage avec un alignement a droite.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    combo.setRenderer(new DefaultListCellRenderer() {
      /** {@ineheritDoc}
       */
      @Override public void getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
         super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
         setHorizontalAlignment(RIGHT); //voir commentaires plus bas.
         return this;
      }
    });
    La valeur par defaut de l'alignement horizontal n'est ni RIGHT, ni LEFT. C'est LEADING qui est sense s'adapter a la Locale active. Donc si la Locale du composant n'est pas mis a une langue arabe, il est normal que l'alignement se fasse a gauche si la Locale par defaut (celle du systeme) est le francais par exemple.

    A voir egalement s'il s'avere necessaire de modifier l'editor (pour quand le menu deroulant n'est pas deplie).

    Dans la mesure du possible essaie cependant juste en modifiant la Locale de la combo avant de faire des modifications lourdes. Si ca se trouve tout fonctionnera bien du premier coup.

    Merci Bouye,
    tu m'as aider beaucoup.
    c'est la bonne solution mais avec un seul changement.
    on doit changer le type de retour de la fonction "getListCellRendererComponent" vers le type Component au lieu de "void".

    merci une autre fois
    donc la solution est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
            jComboBox1.setRenderer(new DefaultListCellRenderer() {
              /** {@ineheritDoc}
               */
              @Override public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
                 super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
                 setHorizontalAlignment(RIGHT); //voir commentaires plus bas.
                 return this;
              }
            });

  9. #9
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Oui désolé, j'ai tapé ca un peu vite .
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

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

Discussions similaires

  1. problem avec jcomboboX
    Par kanebody dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 23/12/2008, 09h52
  2. probleme avec Jcombobox comme TableCellRenderer
    Par atals dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 13/11/2007, 13h23
  3. Probleme de JComboBox
    Par haffouff dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 20/04/2007, 09h34
  4. probleme initialisation JComboBox
    Par mogur dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 20/10/2006, 15h45
  5. Probleme entre JComboBox/CheckBox
    Par bygui dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 11/05/2006, 11h26

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