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 :

Recupèrer la taille d'un JComboBox


Sujet :

AWT/Swing Java

  1. #1
    Invité
    Invité(e)
    Par défaut Recupèrer la taille d'un JComboBox
    Bonjour,

    Avec ce code, je crée une JComboBox qui affiche une JXtable (dans un jpanel)
    Je voudrais que cette JXtable prenne la même longueur que la JComboBox.
    Mais ça ne semble pas fonctionner.

    Pouvez-vous m'aider ?
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    public class TableComboBox extends JComponentComboBox {
     
        private JXTable tbl;
        private String[] colsNames;
        private Object[][] data;
     
        public TableComboBox(String[] colsNames, Object[][] data) {
            this.colsNames = colsNames;
            this.data = data;
            try {
                setSelectedItem(null);
     
                new JComponentComboBox();
                JScrollPane sp = new JScrollPane(getTbl());
                sp.setPreferredSize(new Dimension(900, 150));
     
                setPopupComponent(sp);
     
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
     
        public synchronized void addItem(Object anObject) {
            super.addItem(anObject);
        }
     
        private JXTable getTbl() {
            if ( tbl == null ){
     
                final DefaultTableModel tableModel = new DefaultTableModel(data, colsNames);            
                tbl = new JXTable();
                tbl.setModel(tableModel);
                tbl.addMouseListener(new MouseAdapter(){
                    public void mousePressed(MouseEvent e) {
                        mouseClicked(e);
                        super.mousePressed(e);
                    }
                    public void mouseClicked(MouseEvent e) {
                        String str = tbl.getValueAt(tbl.getSelectedRow(),0).toString();
                        str += " "+ tbl.getValueAt(tbl.getSelectedRow(),1).toString();
                        str += " "+ tbl.getValueAt(tbl.getSelectedRow(),2).toString();
     
                        addItem(str);
                        setSelectedItem(str);
                        hidePopup();
                    }
                });
                tbl.setBackground(Color.WHITE);
            }
            return tbl;
        }
    }
    J'ai essayer getPreferedSize et getSize mais ça me renvoie toujours 0..
    Je précise que cette liste est dans un JPanel en GridBagLayout avec un weightx de 0.5 donc pas de taille fixe..

    Merci

  2. #2
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Euh, c'est moi, ou dans ton code, tu ne sette jamais la taille de ton jTable ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    Non je ne la set Jamais.
    J'ai mis mon code pur.

    J'avait fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    tbl.setSize(new Dimension((int)getSize().getWidth(),200));
    Mais ça getSize() renvoie 0;
    J'ai fait un setSize et un setPreferedSize sur la ComboBox et la getSize renvoie une dimension correcte sauf qu'elle ne réprésente pas la taille réelle de la ComboBox car elle s'adapte à la fenêtre (weightx= 0.5 )

Discussions similaires

  1. Recupération des tailles des repertoires
    Par gurvan1983 dans le forum C++Builder
    Réponses: 4
    Dernier message: 13/04/2007, 08h55
  2. Recupérer la taille (le x) d'un Char(x)
    Par ThanosT dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 01/02/2007, 07h58
  3. recupérer la taille d'un cd
    Par bestsimo2 dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 25/12/2006, 20h11
  4. Recupérer la taille d'une gtkwindow?
    Par Claiw dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 04/12/2006, 14h17
  5. recupérer la taille d'un dossier...
    Par Empty_body dans le forum Langage
    Réponses: 1
    Dernier message: 03/02/2006, 16h02

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