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 :

Barre de défilement dans un Jpanel!


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Barre de défilement dans un Jpanel!
    Bonjour,

    Je découvre java pas à pas et me retrouve confronté à un problème que je ne parviens pas à résoudre à force d'écumage de forums et sources diverses.
    Je me tourne donc vers vous pour, j'espère, trouver un peu d'aide!

    Je souhaiterai tout simplement insérer des barres de défilement dans mon Jpanel (dans celui-ci s'affiche des miniatures d'images).

    Voici le Jpanel en question:

    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
    package Jpanel;
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.FlowLayout;
    import java.awt.Panel;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.util.ArrayList;
    import java.util.ResourceBundle.Control;
     
    import javax.swing.BorderFactory;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JScrollBar;
     
    import javax.swing.JTree;
    import javax.swing.JScrollPane;
    import Composant.Miniature;
     
    import com.sun.java.swing.plaf.nimbus.LoweredBorder;
     
     
    public class JpanelMiniature extends JPanel {
        private JPanel panneau;
     
        public ArrayList<Miniature> listMiniature;
     
        public JpanelMiniature() {
            listMiniature = new ArrayList<Miniature>();
            FlowLayout flowlayout = new FlowLayout();
            flowlayout.setHgap(30);
            flowlayout.setVgap(30);
            setLayout(flowlayout);
            LoweredBorder border = new LoweredBorder();
            setBorder(border);    
     
        }
     
     
        public void selection() {
            for (int i = 0; i < this.getComponentCount(); i++) {
                Miniature m = (Miniature) getComponent(i);
                m.setBorder(BorderFactory.createMatteBorder(1, 1, 1, 1, Color.lightGray));
     
            }
            for (int i = 0; i < listMiniature.size(); i++) {
                listMiniature.get(i).setBorder(BorderFactory.createMatteBorder(2, 2, 2, 2, Color.blue));
            }
     
        }
     
    }
    Je pensais utiliser "Jscrollpane" est-ce la bonne voie ? Et surtout suis-je au bon endroit pour le réaliser ? J'ai testé différentes combinaisons sans succès.

    Je suis donc preneur de toutes informations sur la manière de procéder étant novice en la matière.

    Je vous remercie de m'avoir lu et du temps accordé à cela.
    J'attends vos lumières

    PY

  2. #2
    Membre confirmé Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Points : 505
    Points
    505
    Par défaut
    Pour ajouter des barres de défilement à ton JPanel, il suffit de la placer dans un JScrollPane quand tu l'ajoutes dans l'affichage.
    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maFrame.getContentPane.add(new JScrollPane(monPanel), ...);
    Tu as la doc Java ici.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci à toi je regarde ça, mais pour le moment toujours rien.

    Je continue mes recherches mais si plus d'infos je les prends

    Merci à toi en tout cas

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Pas d'autre solutions?

  5. #5
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Il doit y avoir tout plein d'autres solutions plus ou moins bricolés... Mais celle de ngpub a l'avantage de fonctionner et de correspondre aux bonnes pratiques !


    a++

  6. #6
    Membre expérimenté Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Points : 1 540
    Points
    1 540
    Par défaut
    L'ascenseur ne s'affiche que si c'est nécessaire. Il ne s'affichera pas si tous tes éléments entre dans la fenêtre. Comme pour les pages web....
    Peux être que ton problème (pas de scroll) n'est pas vraiment un problème

    Donc, comme l'a dit ngpub :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    JFrame f = new JFrame("Titre");
    f.add(new JScrollPane(new JpanelMiniature()),BorderLayout.CENTER);
    f.setVisible(true);
    Il était une fois [...] Et ils vécurent heureux et eurent beaucoup d'enfants!

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    J'ai bien essayer avec ce qu'a donné ngpub (un grand merci à lui !). mais du coup j'ai une boucle infinie qui sort en erreure si je ne me trompe pas

    message d'erreur:
    Exception in thread "main" java.lang.StackOverflowError
    at sun.awt.Win32GraphicsConfig.getBounds(Native Method)
    at sun.awt.Win32GraphicsConfig.getBounds(Unknown Source)
    at java.awt.Window.init(Unknown Source)
    at java.awt.Window.<init>(Unknown Source)
    at java.awt.Frame.<init>(Unknown Source)
    at javax.swing.JFrame.<init>(Unknown Source)
    at Jpanel.JpanelMiniature.<init>(JpanelMiniature.java:30)
    at Jpanel.JpanelMiniature.<init>(JpanelMiniature.java:31)
    at Jpanel.JpanelMiniature.<init>(JpanelMiniature.java:31)
    Et pour le moment je n'arrive pas à la résoudre.

    J'ai inclu de script de Jnpub dans le "JpanelMiniature" juste après la ligne : "setBorder (border);"

    Est-ce là mon erreur?
    Merci à vous d'avance!

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Bon

    avec
    GridLayout layout = new GridLayout(0, 8, 30, 30);
    et
    JSplitPane slit1 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,panelArbre,new JScrollPane(panelMiniature));
    Ca fonctionne!

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

Discussions similaires

  1. [HTML]Toujours afficher barre de défilement dans un DIV
    Par steelidol dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 09/03/2006, 17h05
  2. Barre de défilement dans une page
    Par 12_darte_12 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 07/03/2006, 13h51
  3. Barre de défilement dans un Onglet
    Par lito74 dans le forum Access
    Réponses: 1
    Dernier message: 23/02/2006, 10h13
  4. barre de défilement dans un JPanel
    Par Atharendil dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 06/01/2006, 12h27
  5. Mettre une barre de défilement dans une CheckListBox ?
    Par Invité dans le forum Composants VCL
    Réponses: 2
    Dernier message: 21/07/2005, 09h39

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