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 :

JScrollBar dans une JFrame


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 76
    Par défaut JScrollBar dans une JFrame
    Bonjour à toutes et tous,

    Mon problème est le suivant : je n'arrive pas vraiment à comprendre le fonctionnement des "ascenseurs" en java !
    En effet : j'ai créé une JFrame avec un Container. Or ma fenêtre a une dimension de 1000px de hauteur...logiquement cela ne tient pas sur mon écran. Il me faudrait donc une barre déroulante mais je ne vois pas comment 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
    public class JAppliSite extends JFrame implements ActionListener {
     
       private Container contenu;
       private ImageIcon imgBarreSupAcc;
       private ImageIcon imgTitre;
       private JLabel labBarreSupAcc;
       private JLabel labTitre;
     
       public JAppliSite() {
          super();
          imgBarreSupAcc = new ImageIcon("img/Accueil-barresuperieure.jpg");
          imgTitre = new ImageIcon("img/banniere.jpg");
          labBarreSupAcc = new JLabel(imgBarreSupAcc);
          labTitre = new JLabel(imgTitre);
     
          this.contenu = this.getContentPane();
     
          this.contenu.add(labBarreSupAcc);
          this.contenu.add(labTitre);
     
          contenu.setLayout(null);
     
          this.labBarreSupAcc.setBounds(129,0,768,25);
          this.labTitre.setBounds(129,26,768,300);
    }
     
    public static void main(String[] args) throws IOException {
     
       JAppliSite maf = new JAppliSite();	    
       maf.setBounds(0,0,1024,1000);
       maf.setVisible(true);	    
       maf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 		
     
    }
    Merci d'avance pour votre aide

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 26
    Par défaut
    Il y a un site qui pourrait peut-être t'aider mais c'est en anglais, si quelqu'un a lien en version française... Merci d'avance

    http://java.sun.com/docs/books/tutor...html#operation

    Sinon un objet JScrollPane dans lequel tu ajoute tes photos pourrait peut-être être une solution, qu'en pense les experts?


    Je ne suis que débutante, donc je ne peux pas te garantir à 100 % que mon idée est bonne

  3. #3
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 76
    Par défaut
    Merci Goozisan

    C'est pareil moi aussi je ne suis pas très très douée
    J'ai effectivement lu à propos du JScrollPane mais le soucis est que j'ai déjà une JFrame...or il faudrait que je change tout :S
    C'est pour ça que si quelqu'un peut m'aider...

  4. #4
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 76
    Par défaut
    J'ai testé le

    JScrollPane js = new JScrollPane(contenu)
    //contenu étant mon Container de ma fenetre

    mais eclipse n'apprécie pas tellement

  5. #5
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 76
    Par défaut
    J'ai aussi testé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    JScrollPane scrollPane = new JScrollPane();
     
    .....
     
    scrollPane.add(labBarreSupAcc);
    scrollPane.add(labTitre);
    Mais là, rien ne s'affiche...

  6. #6
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    En rouge les modifs à apporter

    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
    public class JAppliSite extends JFrame implements ActionListener {
        
       private JPanel contenu;
       private ImageIcon imgBarreSupAcc;
       private ImageIcon imgTitre;
       private JLabel labBarreSupAcc;
       private JLabel labTitre;
    
       public JAppliSite() {
          super();
          imgBarreSupAcc = new ImageIcon("img/Accueil-barresuperieure.jpg");
          imgTitre = new ImageIcon("img/banniere.jpg");
          labBarreSupAcc = new JLabel(imgBarreSupAcc);
          labTitre = new JLabel(imgTitre);
    
          this.contenu = new JPanel(); //Le JScrollPane ne marche qu'avec des composants héritant de JComponent 
    (donc des composants swing, alors qu'un Container peut également être un composants AWT)
    
           contenu.setLayout(null); //////Le NullLayout c'est MAAAAAAAAAALLLLLLLLL, ce n'est pas redimensionnable et c'est une galère finie à gérer pour placer 
    tes composants au final, explores un peu les autres LayoutManager et tu y trouveras forcément ton bonheur
    
          this.labBarreSupAcc.setBounds(129,0,768,25);
          this.labTitre.setBounds(129,26,768,300);
    
          this.contenu.add(labBarreSupAcc);
          this.contenu.add(labTitre);
    
          
    
          
          this.add(new JScrollPane(contenu));
    }
    
    public static void main(String[] args) throws IOException {
            
       JAppliSite maf = new JAppliSite();        
       maf.setBounds(0,0,1024,1000);
       maf.setVisible(true);        
       maf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);         
        
    }

  7. #7
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 76
    Par défaut
    Merci beaucoup sinok

    Je teste ça ce soir
    Pour le setLayout(null) j'ai toujours utilisé ça :s mais je vais tester autre chose comme tu me le conseilles

  8. #8
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 76
    Par défaut
    Alors : après ajout des modifications (sauf concernant le setLayout(null) car pour l'instant mes objets s'affichent correctement, donc je règlerai ce petit "problème" plus tard ) et toujours rien ne s'affiche

    Le point positif est que mon programme ne buggue pas, tout s'affiche correctement mais ma barre de défilement n'est toujours pas visible. J'ai tenté d'ajouter certaines méthodes a mon objet JScrollPane mais rien n'y fait ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    this.contenu = new JPanel();
    
    scrollPane = new JScrollPane(contenu);
    scrollPane.setEnabled(true);
    scrollPane.setVisible(true);
    scrollPane.setVerticalScrollBar(new JScrollBar());
    
    this.add(scrollPane);

  9. #9
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Essaie en fixant une taille à contenu

  10. #10
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 76
    Par défaut
    Merci énormément herve91 : après avoir ajouté un setPreferredSize() à mon contenu, ma barre de défilement s'affiche enfin !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.contenu.setPreferredSize(new Dimension(1024,1000));
    Merci beaucoup à tout le monde, merci pour votre aide


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

Discussions similaires

  1. JscrollBar dans une JFrame
    Par Asmod_D dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 09/10/2009, 17h05
  2. Disposition de composants dans une JFrame
    Par Regis.C dans le forum Agents de placement/Fenêtres
    Réponses: 11
    Dernier message: 21/03/2005, 17h38
  3. [JLabel] Chargement d'image dans une JFrame
    Par mr.t dans le forum Composants
    Réponses: 10
    Dernier message: 27/01/2005, 18h32
  4. Gestion de menu, JPanels dans une JFrame
    Par Doc.Fusion dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 03/12/2004, 18h27
  5. [JFrame] affichage de component et d'image dans une JFrame
    Par Joeleclems dans le forum Agents de placement/Fenêtres
    Réponses: 8
    Dernier message: 08/10/2004, 16h17

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