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 :

[JScrollPane] panel dans un JScrollPane


Sujet :

AWT/Swing Java

  1. #1
    Membre chevronné Avatar de let_me_in
    Inscrit en
    Mai 2005
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 441
    Par défaut [JScrollPane] panel dans un JScrollPane
    salut a tous,
    je ne sais pas c'est quoi mon probleme avec les JScrollPane, mais encore une fois, pas de scrollbars.
    voici mon code (pret a l'execution):
    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
    import javax.swing.*;
    import java.awt.*;
     
    public class Box1 extends JFrame{
    	JPanel panel1=new JPanel(),panel2;
    	public Box1(){
    		panel2=new JPanel(new GridLayout(25,1));
    		add(panel1);
    		panel1.add(new JScrollPane(panel2));
    		for (int i=0;i<22;i++){
    			panel2.add(new JButton("boutton"));
    		}
    		this.setSize(400,440);
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		this.setVisible(true);
     
    	}
    	public static void main(String[] aer){
    		new Box1();
    	}
     
    }
    qq aurait une idee?
    merci d'avance.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 128
    Par défaut
    Plutôt que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    panel1.add(new JScrollPane(panel2));
    essaie plutôt ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    JScrollPane scrPan = new JScrollPane();
    scrPan.setViewportView(panel2);
    panel1.add(scrPan);

  3. #3
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 910
    Billets dans le blog
    54
    Par défaut
    Je ne vois pas trop ce que cela changerai.

    Probleme de taille preferree ou minimale sur panel2 probablement. Eventuellement monte la boucle de creation des boutons audessus de l'inclusion de panel2 dans le scrollpane. Sinon affecte une taille en dur.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  4. #4
    Membre chevronné Avatar de let_me_in
    Inscrit en
    Mai 2005
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 441
    Par défaut
    Marcin:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scrPane.setViewportView(qqchose);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scrPane.getViewport().add(qqchose);
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scrPane=new JScrollPane(qqchose);
    donne exactement le meme effet.
    bouye:
    j'ai essaye avec le setPreferredSize(), et ça n'a rien donné.
    meme en montant la boucle, le prbleme persiste.


    merci.

    autre idee ?

  5. #5
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Tu peux toujours faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    scrPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
    scrPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    Mais ca n'est peut etre pas ce que tu recherches.

    [EDIT] il manquerait pas un petit pack() ?
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  6. #6
    Membre chevronné Avatar de let_me_in
    Inscrit en
    Mai 2005
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 441
    Par défaut
    deja essayee.
    les scrollBars s'affichent mais ne font pas defiler le panel,
    je pense que le probleme vient du GridLayout puisque le scrollBar ne s'affiche pas en complet (la fleche de bas est cahee).

    merci.

  7. #7
    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,


    Il ne faut pas mettre le JScrollPane dans un JPanel (ton panel1 est inutile) :

    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
    public class Box1 extends JFrame{
        JPanel panel2;
        public Box1(){
           panel2=new JPanel(new GridLayout(25,1));
           getContentPane().add(new JScrollPane(panel2));
           for (int i=0;i<22;i++){
              panel2.add(new JButton("boutton"));
           }
           this.setSize(400,440);
           this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
           this.setVisible(true);
     
        }
        public static void main(String[] aer){
           new Box1();
        }
     
    }
    a++

  8. #8
    Membre chevronné Avatar de let_me_in
    Inscrit en
    Mai 2005
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 441
    Par défaut
    merci beaucoup adiGub, et a tous.

  9. #9
    Membre expérimenté Avatar de Lethal
    Profil pro
    Développeur Java
    Inscrit en
    Février 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2006
    Messages : 194
    Par défaut
    Je ne pense pas que l'on puisse dire que le panel 1 est inutile, il peut se justifier dans certains cas.

    Puis ça fonctionne très bien avec.

    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
    public class Box1 extends JFrame{
        JPanel panel2;
        JPanel panel1;
     
        public Box1(){
     
           panel1 = new JPanel(new GridLayout(1,1));
     
           getContentPane().add(panel1);
     
           panel2=new JPanel(new GridLayout(0,1));
     
           panel1.add(new JScrollPane(panel2));
     
           for (int i=0;i<22;i++)
           {
              panel2.add(new JButton(("boutton " +i)));
           }
     
           this.setSize(400,440);
           this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
           this.setVisible(true);
     
        }
        public static void main(String[] aer){
           new Box1();
        }
     
    }

  10. #10
    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
    Citation Envoyé par Lethal
    Je ne pense pas que l'on puisse dire que le panel 1 est inutile, il peut se justifier dans certains cas.
    Ce que je voulais dire c'est que cela n'apporte rien de créer un Panel pour ne mettre qu'un seul composant à l'intérieur. Autant mettre directement le composant...

    Citation Envoyé par Lethal
    Puis ça fonctionne très bien avec.
    Parce que le GridLayout a un fonctionnement différent du FlowLayout (par défaut sur les JPanel)

    a++

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

Discussions similaires

  1. Plusieurs Panels dans un JScrollPane
    Par rXpCH dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 01/06/2011, 13h50
  2. Probleme d'affichage d'un panel dans un JScrollPane
    Par aymenroma dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 25/06/2007, 16h38
  3. panel dans jscrollpane
    Par let_me_in dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 17/02/2006, 16h54
  4. Rafraichir un JPanel qui est dans un JScrollPane
    Par anitshka dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 06/12/2004, 23h17
  5. Des Panels dans un jScrollPane
    Par cantabile dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 07/08/2004, 12h20

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