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 :

[Swing] Un JPanel dans un JScrollPane


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 37
    Par défaut [Swing] Un JPanel dans un JScrollPane
    Salut,

    J'ai un problème pour mettre un JPanel dans un JScrollPane : Un rectangle gris s'affiche là où le JScrollPane doit se trouver (donc là c'est bon je pense). Par contre mon JPanel qui a une superficie 4 fois plus grande que celle du JScrollPane ne s'affiche pas dedans et les barres défilement ne s'affichent pas non plus.

    Voici la classe concernée :
    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 Map extends JScrollPane {
     
    	public Map(Container from) {
     
    		super(map, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
    				JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
     
    		map.setBackground(Color.WHITE);
    		map.setLayout(null);
    		map.setBounds(0, 0, 800, 600);
    		from.add(this);
    		this.setBounds(200, 200, 400, 300);
     
    	}
     
    	private static JPanel map = new JPanel();
     
    }
    Merci d'avance

  2. #2
    Membre expérimenté Avatar de fremsoi
    Inscrit en
    Août 2003
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 201
    Par défaut
    esssai un truc du style
    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
     
    public class Map extends JPanel {
     
       private static JPanel map;  
       private JScrollPane js;  
     
       public Map() {
          super();
     
          map = new JPanel(); 
          map.setBackground(Color.WHITE);
          map.setLayout(null);
          map.setBounds(0, 0, 800, 600);
          js = new JScrollPane(map, ScrollPane.VERTICAL_SCROLLBAR_ALWAYS, 
                JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
          js.setBounds(200, 200, 400, 300);
     
          add(js);
       }
    }
    et tu ajoutes ce Panel à ton container

    ( Code non testé )

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 37
    Par défaut
    Merci, j'ai essayé et je l'ai un tout petit peu modifié (un ou deux arguments). Mais ça fonctionne pas ça donne toujours le même résultat...

    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
    public class Map extends JPanel {
     
       private static JPanel map; 
       private JScrollPane js; 
     
       public Map() {
          super();
     
          map = new JPanel();
          map.setLayout(null);
          map.setBackground(Color.WHITE);
          map.setBounds(0, 0, 800, 600);
          js = new JScrollPane(map, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
                JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
          js.setBounds(0, 0, 400, 300);
     
          add(js);
       }
    }
    // est appelé comme ceci :
    // Map carte = new Map();
    // getContentPane().add(carte);
    // carte.setBounds(200, 200, 400, 300);

  4. #4
    Membre expérimenté Avatar de fremsoi
    Inscrit en
    Août 2003
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 201
    Par défaut
    en faisant remplacant juste :
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     super(new BorderLayout());
    Tu as déjà les ascenseur qui s'affiche

    Il faut que tu vois pour les setBounds ensuite

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 37
    Par défaut
    Merci mais j'essaye et les ascenseurs ne s'affichent toujours pas...

  6. #6
    Membre expérimenté Avatar de fremsoi
    Inscrit en
    Août 2003
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 201
    Par défaut
    ????
    Pourtant ce coup ci j'ai testé ton code et tout ....

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 37
    Par défaut
    Je ne sais pas je ne voit pas ce qui clôche non plus

    Tu l'appelle de la même façon que mo?
    (je l'ai écrit en commentaie dans le code)

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 37
    Par défaut
    Mais ne te torture pas temps pis je vais utiliser le clavier

  9. #9
    Membre expérimenté Avatar de fremsoi
    Inscrit en
    Août 2003
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 201
    Par défaut
    En tout cas oui, j'avais fait l'appel exactement comme toi.
    Puis mis dans une JFrame

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 37
    Par défaut
    Boh alors, ça restera un des mystères de la vie ^^

  11. #11
    Membre expérimenté Avatar de fremsoi
    Inscrit en
    Août 2003
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 201
    Par défaut
    non la machine n'est pas plus forte que nous 8)

    Je regarderais demain ..!

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 37
    Par défaut
    Ok merci

  13. #13
    Membre expérimenté Avatar de fremsoi
    Inscrit en
    Août 2003
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 201
    Par défaut
    Salut

    Trouver qqch ... setBounds c'est de AWT et tu mélanges AWT & SWING ( à éviter )

    donc voici ce que j'ai fais et ça marche :
    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
     
    import java.awt.Color;
    import java.awt.Dimension;
     
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
     
    public class Map extends JPanel { 
     
    	private static final long serialVersionUID = 1L;
    	private JPanel map; 
    	private JScrollPane js; 
     
    	public Map() { 
    		super(); 
     
    		map = new JPanel();
    		map.setLayout(null); 
    		map.setBackground(Color.WHITE);
    		map.setPreferredSize(new Dimension(800,600));
     
    		js = new JScrollPane(map, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, 
    				JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); 
    		js.setPreferredSize(new Dimension(400,300));
     
    		add(js); 
    	} 
    }
    et ma classe qui lance :

    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
    import javax.swing.JFrame;
     
    public class Go {
     
    	public static void main(String[] args) {
    		JFrame f = new JFrame();
    		Map carte = new Map(); 
    		f.getContentPane().add(carte); 
     
    		f.pack();
    		f.setVisible(true);
     
    	}
     
    }

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 37
    Par défaut
    Merci beaucoup fremsoi, et pour setBounds tu m'apprends quelque chose ^^

    J'essaye cela de suite et je te dis quoi

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 37
    Par défaut
    Ca fonctionne

    Grâce à toi, un des mistères de la vie a été élucidé 8)
    Merci

  16. #16
    Membre expérimenté Avatar de fremsoi
    Inscrit en
    Août 2003
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 201
    Par défaut
    arrete je vais rougir ....

    En tout cas la machine reste la machine
    Encore une victoire de canard

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 37
    Par défaut

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

Discussions similaires

  1. Actualiser un JPanel dans un JScrollPane
    Par bingo06260 dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 11/04/2011, 21h30
  2. JPanel dans un JScrollPane (qui ne défile pas bien)
    Par womannosky dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 11/02/2009, 09h16
  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. Récupérer JPanel dans un JScrollPane dans un JTabbedPane
    Par orochimaru13 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 16/05/2008, 11h02
  5. SWING: des JPanel dans une JFrame
    Par julien.63 dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 02/12/2007, 19h21

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