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 :

JComboBox et tabulation


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 41
    Par défaut JComboBox et tabulation
    Bonsoir,
    Je suis en train de développer une IHM pour faire ... pleins de trucs lol
    Pas la peine d'aller bien loin, quand je veux remplir le tableau de string d'un de mes combobox, il m'est impossible de mettre dans le String des "\t" de tabulation, qui pourrait grandement faciliter la lecture et le choix de ce combo...

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    package testtabcombobox;
    
    public class NewJFrame extends javax.swing.JFrame {
    
        public NewJFrame() {
            initComponents();
        }
    
        private void initComponents() {
    
            jComboBox1 = new javax.swing.JComboBox();
    
            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
            setName("Form");
    
            String [] Liste = new String[3];
            Liste[0]="sans tab";
            Liste[1]="avec\ttab";
            jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(Liste));
            jComboBox1.setName("jComboBox1"); 
    
            pack();
        }
    
        public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new NewJFrame().setVisible(true);
                }
            });
        }
    
        private javax.swing.JComboBox jComboBox1;
        
    
    }
    Le résultat de ce combobox:
    sans tab
    avectab

    Bref, quelqu'un pourrait m'expliquer le pourquoi du comment?

    J'ai bien un début de solution, il faudrait que je parcours toute ma base/table, a la recherche du plus grand premier terme, puis calculer ce qu'il faut en caractère espace, pour que tous les seconds termes se retrouvent alignés dans ma combobox, vu que je travaille avec les indices, ca pourrait le faire, mais, je ne trouve pas la solution élégante...

    Merci de vos aides!

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Citation Envoyé par Levaillant Voir le message
    J'ai bien un début de solution, il faudrait que je parcours toute ma base/table, a la recherche du plus grand premier terme, puis calculer ce qu'il faut en caractère espace, pour que tous les seconds termes se retrouvent alignés dans ma combobox, vu que je travaille avec les indices, ca pourrait le faire, mais, je ne trouve pas la solution élégante...
    Surtout que si ta police a une chasse variable, cette solution n'est pas correcte.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 41
    Par défaut
    Citation Envoyé par dinobogan Voir le message
    Surtout que si ta police a une chasse variable, cette solution n'est pas correcte.
    Bien vu en effet!

    Je trouve ça incroyable cette histoire tout de même...

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Citation Envoyé par Levaillant Voir le message
    Je trouve ça incroyable cette histoire tout de même...
    A la décharge de l'API, ce n'est pas l'utilisation normal. Le combo propose par défaut une liste.
    Par contre, tu peux utiliser ton propre renderer (ou editor si le combo est éditable). Tu vas renvoyer par exemple un JPanel contenant 2 JLabel. Le premier aligné à gauche pour la première partie de chaine, le second aligné à droite pour la seconde partie de chaîne. Reste plus qu'à utiliser un BorderLayout sur le JPanel et ça devrait afficher les données comme tu le souhaites.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 41
    Par défaut
    Je crois avoir compris le principe de ton explication, seulement dans l'immédiat, va falloir que je me penche sérieusement dessus...
    A première vue, ça s'apparente à un model pour une jTable?
    Je vais essayer çà dès que j'aurais un moment

    Merci en tout cas pour ce début de solution

  6. #6
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Citation Envoyé par Levaillant Voir le message
    A première vue, ça s'apparente à un model pour une jTable?
    Non, non. Absolument rien à voir. Le modèle gère les données.
    La solution proposée utilise le mécanisme standard de Renderer et Editor propre aux composants Swing.
    Le principe très général (je t'encourage vivement à aller voir la FAQ et différents tuto du site) est que le composant Swing appelle toujours la même méthode pour afficher chacune des données. Tu as juste à surcharger cette méthode pour renvoyer le composant de ton choix contenant ce que tu veux.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

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

Discussions similaires

  1. Insérer tabulation dans un item de JCombobox
    Par CobolProgrammator dans le forum Composants
    Réponses: 2
    Dernier message: 12/11/2011, 14h30
  2. Séquences d'échappement tabulation dans champs de Jcombobox
    Par dcvman dans le forum Général Java
    Réponses: 3
    Dernier message: 25/06/2010, 11h24
  3. Couleur d'une JComboBox disabled
    Par ced dans le forum Composants
    Réponses: 6
    Dernier message: 06/01/2004, 15h33
  4. Comment imprimer des tabulations ?
    Par Invité dans le forum C++Builder
    Réponses: 2
    Dernier message: 27/11/2002, 11h30
  5. [VB6] Touche de tabulation
    Par BernardMatthey dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 26/11/2002, 22h06

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