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 :

JScrollPane et redimensionnement de la 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 confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 106
    Par défaut JScrollPane et redimensionnement de la JFrame
    Bonjour à tous

    Pour mon application j'ai besoin de redimensionner un JScrollPane qui contient un JPanel. Pour cela je fais donc appel à la méthode setSize de JScrollPane. Jusque-là tout va bien, le scroll pane est bien redimensionné.

    Seulement lorsque je redimensionne ma fenêtre (JFrame) par exemple, la JScrollPane se redimensionne pour prendre tout l'écran, ce que je ne lui ai pas demandé.

    Voici la hiérarchie des composants :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    contentPane de la JFrame (BorderLayout)
       |--- JScrollPane (BorderLayout.CENTER)
       |--- JPanel (ma barre de statut, en BorderLayout.PAGE_END)
    Savez-vous comment je peux éviter ce comportement ? (sachant que même lorsque je modifie le texte d'un JLabel situé dans la barre de statut ça redimensionne la JScrollPane pour lui faire prendre tout la fenêtre)

    PS : J'ai aussi essayé avec setPreferredSize sur le JScrollPane à la place de setSize mais ça ne marche pas

    Merci

  2. #2
    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 même temps le CENTER d'un BorderLayout est prévu pour occuper tout l'espace disponible au niveau de l'interface. Or tu as mis ton JScrollPane dans le CENTER de ton BorderLayout. Donc il prend tout l'espace disponible CQFD

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 106
    Par défaut
    Ahhhh pas bête^^

    Mais dans ce cas comment est-ce que je pourrais faire pour pouvoir mettre une toolbox en haut, une barre de statut en bas, et mon scrollpane au milieu, tout ça sans BorderLayout ?

    Parce que je viens de tester, si je garde mon BorderLayout et que je mets mon scrollpane dans un JPanel que je place en CENTER, ça va pas non plus : le scrollpane bouge pour se retrouver au milieu

  4. #4
    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
    Tu as une partie de la réponse:
    Etapes:


    1. Garder ton BordserLayout, il est parfait pour ce que tu cherches à faire
    2. Utiliser un JPanel dans le center de ton BOrderLayout
    3. Utiliser le Layout de ta convenance sur ce JPanel afin de pouvoir correctement placer les composants qui forment le contenu de ton GUI

    Bon ensuite ne visualisant pas exactement ce que tu cherches à faire je ne peux pas trop te conseiller sur le layout à utiliser.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 106
    Par défaut
    Pour être plus clair j'ai pris des screenshots. Tout d'abord voila ce que j'aimerais avoir (et que j'ai tant que la JFrame ne me redimensionne pas tout) :



    Ensuite voila ce que j'ai, lorsque ma JFrame fait sa modif', en mettant en CENTER un JPanel. Ce JPanel a un FlowLayout. Ca ne va pas car le JPanel se met au milieu :


    Ne connaissant pas trop les layouts, j'ai été faire un tour sur cette page, mais à première vue aucun ne semblerait convenir

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

    Citation Envoyé par TheDoci Voir le message
    Ce JPanel a un FlowLayout.
    Il faudrait avoir le code correspondant ou l'arborescence complète des composants. Chaque composant est positionné selon le layout de son parent.

    Si comme je le pense tu as bien ceci : JScrollPane -> JPanel -> Image
    • Le JScrollPane prend le maximum de place (le contentPane de la fenêtre à un BorderLayout.Center).
    • Le JPanel prendra toute la place du JScrollPane. Si ce dernier est trop petit les scrollbar apparaissent.
    • Les composants à l'intérieur du JPanel sont positionné par rapport au FlowLayout, donc les un à la suite des autres. Mais par défaut le FlowLayout centre les composants si l'espace vertical est plus grand que nécessaire.


    Dans ce cas la solution est de forcer le JPanel à aligner à gauche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new JPanel(new FlowLayout(FlowLayout.LEFT));
    a++

Discussions similaires

  1. redimensionnement de mon jframe
    Par remy85 dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 13/06/2007, 23h01
  2. Redimensionnement d'une jFrame
    Par fred978 dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 02/09/2006, 17h19
  3. [JFrame] Redimensionnement et Drag Mode
    Par Quentin dans le forum Agents de placement/Fenêtres
    Réponses: 6
    Dernier message: 02/12/2004, 00h12
  4. Interdire de redimensionner une JFrame
    Par java_math dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 06/06/2004, 14h59
  5. [JFrame][JScrollPane] rafraichissement
    Par iuz dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 14/05/2004, 12h08

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