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 :

Changement taille Jtable dynamiquement


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2005
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 188
    Par défaut Changement taille Jtable dynamiquement
    Bonjour,

    J'ai un petit souci en essayant de changer dynamiquement la taille de ma Jtable.

    Au départ, je l'initialise avec la méthode ci-dessous et c'est nikel:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public static void updateSizeTable(JTable table){
            JTableHeader headerRenderer = table.getTableHeader();
            table.setPreferredScrollableViewportSize(new Dimension(400, headerRenderer.getHeight() + table.getModel().getRowCount() * table.getRowHeight()));
            table.setPreferredSize(new Dimension(400, headerRenderer.getHeight() + table.getModel().getRowCount() * table.getRowHeight()));
        }
    Ensuite, quand je clique sur un bouton, ca fait l'action suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
      public void actionPerformed(ActionEvent e) {
            Condition condition = new Condition();
            ConditionsTableModel modele = (ConditionsTableModel)table.getModel();
            modele.addRow(condition);
            TableUtil.updateSizeTable(table);
        }
     
        public void addRow(Condition condition){
            conditions.add(condition);
            fireTableDataChanged();
        }
    Ce qui se passe, c'est qu'en cliquant sur mon bouton, il m'ajoute un scrollbar pour pouvoir défiler vers le bas, mais je ne comprends pas pourquoi (même si effectivement j'ai défini ma table avec une scrollbar), car j'augmente simultanément la taille de la view port et ensutie celle de la table.

    Merci :-)

  2. #2
    Membre très actif
    Avatar de william44290
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2009
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 400
    Par défaut
    il me semble que tu ajoute ta ligne avant de modifier ton viewport

  3. #3
    Membre éclairé
    Inscrit en
    Novembre 2005
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 188
    Par défaut Re
    Re,

    J'ai réussi à m'en sortir en mixant cela, et le fait qu'il faille updater le contenur de la table aussi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        @Override
        public void actionPerformed(ActionEvent e) {
            Condition condition = new Condition();
            TableUtil.addRow(table, condition);
            fenetre.pack();
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        public static void addRow(JTable table, Condition condition){
            TableUtil.increaseSizeTable(table);
            ConditionsTableModel model = (ConditionsTableModel)table.getModel();
            model.addRow(condition);
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        public static void increaseSizeTable(JTable table){
            Dimension dimension = new Dimension(600, table.getHeight() +  table.getRowHeight());
            table.setPreferredScrollableViewportSize(dimension);
            table.setPreferredSize(dimension);
        }
    Merci pour tout :-)

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

Discussions similaires

  1. IE7 et changement taille dynamique
    Par nims dans le forum jQuery
    Réponses: 4
    Dernier message: 01/06/2011, 17h54
  2. JTable dynamique : ajouter des lignes
    Par koolway dans le forum Composants
    Réponses: 6
    Dernier message: 17/06/2010, 15h41
  3. [c++] Tableau avec taille initiale dynamique
    Par mister3957 dans le forum C++
    Réponses: 15
    Dernier message: 22/11/2005, 11h33
  4. [CR] Taille champ dynamique
    Par reflex dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 06/08/2004, 08h43
  5. Changement de langue dynamique (D6 et outils de traduction)
    Par agon dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/09/2002, 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