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 :

Ajouter JScrollPane dans une JPanel contetnat des JPanels + GridLayout


Sujet :

AWT/Swing Java

  1. #1
    Membre à l'essai
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    13
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 13
    Points : 10
    Points
    10
    Par défaut Ajouter JScrollPane dans une JPanel contetnat des JPanels + GridLayout
    Bonjour,

    J'ai cette interface pour créer. J'ai un problème avec le JScrollPane:




    J'ai déclaré un JPanel avec un GridLayout (8,1,0,2),c'est une panel avec 8 lignes et une seule colonne.
    Je veux ajouter dans cette colonne 8 panels rectangulaires(Une ligne est un JPanel aussi) et si le nombre dépasse 8 une scrollepane s'affiche.

    Là si le nombre de lignes dépasse 8, la scrollpane ne s'affiche pas mais je reçois deux colonnes ... J'ai ajouté un JScrollPane, mais il ne veut pas apparaître .
    Comment puis-je faire?


    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
    55
    56
    57
     
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.EventQueue;
     
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.border.EmptyBorder;
    import java.awt.GridLayout;
    import javax.swing.JScrollPane;
     
    public class example extends JFrame {
     
    private JPanel contentPane;
     
    /**
     * Launch the application.
     */
        public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    example frame = new example();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
     
    /**
     * Create the frame.
     */
    public example() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 387);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);
     
        JScrollPane scrollPane = new JScrollPane();
        scrollPane.setBounds(32, 22, 358, 266);
        contentPane.add(scrollPane);
     
        JPanel panel = new JPanel();
        scrollPane.setViewportView(panel);
        panel.setLayout(new GridLayout(8, 1, 0, 2));
     
        for(int i=0; i<8; i++)
        {
        JPanel panel_1 = new JPanel();
        panel_1.setBackground(Color.ORANGE);
        panel.add(panel_1);
        }
    }

    Merci d'avance.
    Cordialement,
    Ali

  2. #2
    Membre éclairé
    Homme Profil pro
    NoOb
    Inscrit en
    Mai 2007
    Messages
    554
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : NoOb

    Informations forums :
    Inscription : Mai 2007
    Messages : 554
    Points : 852
    Points
    852
    Par défaut
    Bonjour,

    Quand tu mets 12 panels, tu corrige bien le GridLayout?

  3. #3
    Membre du Club Avatar de arafat877
    Inscrit en
    Septembre 2010
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 46
    Points : 46
    Points
    46
    Par défaut Des solutions !
    Salut

    Je te donne deux solutions :

    1) utilise le ListCellRendrer afin d´accepter les JPanel comme rendrer, et puis d´ajouter autant de JPanel au JList, puis d´ajouter la JList au JScrollPane.

    2) utilise cette classe :
    ScrollablePanel.java

    Cordialement

  4. #4
    Membre à l'essai
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    13
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 13
    Points : 10
    Points
    10
    Par défaut Résolu
    Bonsoir,

    Merci à tous j'ai arriver en fin en mettant une scollpane puis une JPanel avec BordeLayout, et au North, j'ai mis une autre panel avec GridLayout(0,1,1,1) et enfin j'ai mis plusieurs panels dans celle avec la grille.

    Voilà le code complet:

    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     
     
    package d06.m03;
     
    import java.awt.BorderLayout;
     
    public class ActionExample4 extends JFrame {
     	/**
             * Launch the application.
             */
    	public static void main(String[] args) {
    		EventQueue.invokeLater(new Runnable() {
    			public void run() {
    				try {
    					ActionExample4 frame = new ActionExample4();
    					frame.setVisible(true);
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    			}
    		});
    	}
     
    	/**
             * Create the frame.
             */
    	public ActionExample4() {
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setBounds(100, 100, 778, 426);
    		getContentPane().setLayout(null);
     
    		JScrollPane scrollPane = new JScrollPane();
    		scrollPane.setBounds(10, 101, 742, 276);
    		//scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    		getContentPane().add(scrollPane);
     
    		JPanel borderlaoutpanel = new JPanel();
    		scrollPane.setViewportView(borderlaoutpanel);
    		borderlaoutpanel.setLayout(new BorderLayout(0, 0));
     
    		JPanel columnpanel = new JPanel();
    		borderlaoutpanel.add(columnpanel, BorderLayout.NORTH);
    		columnpanel.setLayout(new GridLayout(0, 1, 0, 1));
    		columnpanel.setBackground(Color.gray);
     
     
    		for(int i=0;i<32;i++)
    		{
    		 JPanel rowPanel = new JPanel();
    	    rowPanel.setPreferredSize(new Dimension(300,30));
    	    columnpanel.add(rowPanel);
    	    rowPanel.setLayout(null);
     
    	    JButton button = new JButton("New button");
    	    button.setBounds(20, 5, 89, 23);
    	    rowPanel.add(button);
    	    if(i%2==0)
    	    	rowPanel.setBackground(SystemColor.inactiveCaptionBorder);
    		}
     
     
    		String name = System.getProperty ( "os.name" );
    		String version = System.getProperty ( "os.version" );
    		System.out.println(name+" "+ version);
     
     
     
     
    	}
    }
     
     
    Bon courage.

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

Discussions similaires

  1. BufferedImage dans une classe héritant de JPanel
    Par guy_s dans le forum Graphisme
    Réponses: 0
    Dernier message: 29/05/2009, 23h56
  2. Des problèmes pour ajouter valeur dans une ArrayList
    Par Fused dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 07/11/2008, 16h28
  3. JPanel dans une JFrame ok, mais JPanel dans un JScrollPane dans une JFrame non :(
    Par FenX. dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 22/05/2008, 10h45
  4. ajout éléments dans une balise select
    Par wehtam dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/08/2005, 14h03
  5. [JPanel] superposer des JPanel
    Par Galima dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 10/06/2004, 18h25

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