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

Agents de placement/Fenêtres Java Discussion :

Affichage de la barre de défilement seulement si nécessaire


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2004
    Messages : 237
    Par défaut Affichage de la barre de défilement seulement si nécessaire
    Salut,

    J'utilise un JTable avec un JScrollPane comme ceci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    JTable tableau = new JTable(donnees, entetes);
    int nbLig = 8;
    int hauteurTab = 16 * nbLig;
    tableau.setSize(200, 200);
    tableau.setPreferredSize(tableau.getSize());
     
    JScrollPane scrollPane2 = new JScrollPane(tableau);
    scrollPane2.setSize(500, hauteurTab);
    scrollPane2.setPreferredSize(tableau.getSize());
    scrollPane2.setMinimumSize(tableau.getSize());
    Mon problème est que la barre de défilement verticale apparait même si le nombre de ligne de mon JTable ne le nécessite pas.
    Que dois-je rajouter pour que la barre de défilement s'affiche seulement si nécessaire?

    Merci.

  2. #2
    Membre expérimenté Avatar de Vikisme
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2007
    Messages : 172
    Par défaut
    Pour rajouter une barre de défilement verticale uniquement si nécessaire c'est ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scrollPane2.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
    Mais dans ton cas ce n'est pas le problème je pense parce que par défaut cette option est définie.

    Ta définition de taille me parais plus que bizarre... J'aurais plutôt fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    JTable tableau = new JTable(donnees, entetes);
    int nbLig = 8;
    int hauteurTab = 16 * nbLig;
    //tableau.setSize(200, 200);
    //tableau.setPreferredSize(tableau.getSize());
     
    JScrollPane scrollPane2 = new JScrollPane(tableau);
    //scrollPane2.setSize(500, hauteurTab);
    //scrollPane2.setPreferredSize(tableau.getSize());
    //scrollPane2.setMinimumSize(tableau.getSize());
    scrollPane2.setPreferredSize(new Dimension(500, 200));
    Et dans ce cas tu n'as plus de problème de scroll ?
    16 * 8 en hauteur ça parait peu non ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2004
    Messages : 237
    Par défaut
    Ta première solution me semblais prometeuse mais ca ne marche toujours pas.
    J'ai toujours une scrollbar verticale alors que l'espace n'est pas rempli.

    Ta deuxième solution n'est pas valable car nbLig va agmenter avec les nouvelles saisies. C'est pour ça que j'ai besoin d'une scrollbar.

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    As-tu testé sa seconde solution au moins ???

    Tu joues avec les tailles en spécifiant plein de dimensions partout. C'est incompréhensible ! (Que veux-tu faire exactement ?)


    Il est bien plus simple de laisser le JScrollPane se débrouiller tout seul. Il fait cela très bien...

    a++

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2004
    Messages : 237
    Par défaut
    J'avais biensûr tester les solutions avant de dire que ça ne marchait pas.
    Mais comme vous êtes 2 à dire que ça devrait marcher j'ai refais des tests et ... ça marche à condition de revoir mes GridBagConstraints.
    Donc merci à vous 2.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2004
    Messages : 237
    Par défaut
    Pour info voici le nouveau code source:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    JTable tableau = new JTable(donnees, entetes);
    JScrollPane scrollPane2 = new JScrollPane(tableau);
     
    GridBagConstraints c104 = new GridBagConstraints();
    c104.gridx = 1;
    c104.gridy = 2;
    c104.weightx = 1.;
    c104.weighty = 1.;
    c104.fill = GridBagConstraints.BOTH;
    c104.insets = new Insets(0, 0, 20, 0);
    getContentPane().add(scrollPane2,c104);

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/08/2010, 22h12
  2. Réponses: 2
    Dernier message: 27/12/2007, 18h55
  3. Oter la barre de défilement horizontale d'un TDBGrid
    Par adelavarenne dans le forum Bases de données
    Réponses: 4
    Dernier message: 02/06/2004, 15h37
  4. Evenement sur les barres de défilement d'une ScrollBox
    Par Nico118 dans le forum C++Builder
    Réponses: 2
    Dernier message: 06/05/2004, 14h56
  5. Barre de défilement
    Par GO dans le forum Composants VCL
    Réponses: 2
    Dernier message: 26/01/2003, 17h40

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