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 :

Pas de barre verticale dans un JScrollPane


Sujet :

Composants Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 121
    Points : 63
    Points
    63
    Par défaut Pas de barre verticale dans un JScrollPane
    Bonjour,

    Je souhaite afficher un objet de type ADList (objet qui hérite de JList) dans un JScrollPane. Le problème est que le barre verticale permettant de scroller n'apparaît pas lorsque les éléments dépassent la taille de ma JList. Si je force la présence de la scroll bar verticale en utilisant ".setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS)", la barre apparaît en grisée et reste inactive lorsque les éléments dépassent la taille de la JList.

    J'ai vu sur le forum que cela pouvait venir d'une mauvaise définition du Layout. J'utilise un GridBagLayout, néanmoins, cette indication ne m'a pas permis de trouver la réponse.

    Voici un extrait de la classe dans laquelle je déclare mon JScrollPane :
    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
    ...
     
    public class SelectionFrame extends JFrame{
     
    	private ADList adl = new ADList();
     
    	public SelectionFrame(){
     
    		JPanel pane = new JPanel(new GridBagLayout());
     
                    /* Sans cette ligne, les elements de la JList disparaissent quand j'en ajoute plus de deux (si jamais ca vous aide ou si vous pouvez m'expliquer pour quoi je suis preneur '-_- ... */
    		adl.setPrototypeCellValue(" ");
     
    		JScrollPane jsp_adl = new JScrollPane(adl);
     
    		/* J'ai mis une petite valeur en y pour voir si cela faisait apparaitre la ScrollBar mais non... */
    		jsp_adl.setPreferredSize(new Dimension(243, 10));
     
    		pane.add(jsp_adl, getConstraints(0, 1, 2, 1, 0.1, 0.4, GridBagConstraints.WEST, GridBagConstraints.VERTICAL));
     
    		...
     
    		this.setSize(520, 700);
    		this.setLocationRelativeTo(null);
    		this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
     
    		this.setContentPane(pane);
    		setVisible(true);
     
    	}
     
    	public GridBagConstraints getConstraints(int x, int y, int width, int height, double wX, double wY, int anchor, int fill){
     
    		GridBagConstraints c = new GridBagConstraints();
     
    		c.gridx = x;
    		c.gridy = y;
    		c.gridwidth = width;
    		c.gridheight = height;
    		c.weightx = wX;
    		c.weighty = wY;
    		c.anchor = anchor;
    		c.fill = fill;
     
    		return c;
    	}
     
    	...
     
    }
    Cela vous inspire ?

  2. #2
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Il est possible que je dise de la "merde".
    Mais si je me souviens bien il faut que le contenu soit "Scrollable".

    Personnellement, je mets toujours un JPanel dans un JScrollPane.
    Si la taille du contenu du JPanel dépasse la taille du JScrollPane, alors on a les scroll.(Ou la taille du JPanel directement si elle est définit)

    Mais le mieux reste de lire la documentation :
    JScrollPane Javadoc
    How use JScrollPane

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 121
    Points : 63
    Points
    63
    Par défaut
    Merci de ta réponse.

    J'ai ajouté ma liste dans un JPanel, puis j'ai mis le JPanel dans le JScrollPane :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    		JPanel jp_adl = new JPanel(new GridBagLayout());
    		jp_adl.add(adl, getConstraints(0,0,1,1,1.0,1.0,GridBagConstraints.NORTHWEST, GridBagConstraints.BOTH));
     
    		JScrollPane jsp_adl = new JScrollPane(jp_adl);
    Malheureusement le résultat reste le même. Je vais rejeter un coup d'oeil à la doc mais je ne comprend pas tout .

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 121
    Points : 63
    Points
    63
    Par défaut
    Le problème venait de ma définition de la class ADList. Le model de ma liste ne s'actualisait pas et donc la JScrollPane non plus.

    Le topic qui en parle : http://www.developpez.net/forums/d11...ist-dynamique/

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

Discussions similaires

  1. barre verticale dans une JFrame
    Par thierry_b dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 09/07/2009, 16h40
  2. pas de barre de menu dans IDE Delphi5
    Par zonda dans le forum Delphi
    Réponses: 2
    Dernier message: 11/11/2006, 17h22
  3. [Lien] Ne pas afficher d'info dans la barre d'adresse
    Par 000 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 15/05/2006, 01h35
  4. [VBA-E] barre verticale dans un graphique
    Par Igloobel dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 02/02/2006, 22h33
  5. [JScrollPane]pas de barre de defilement !!!
    Par let_me_in dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 04/01/2006, 10h15

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