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 :

JSplitPane - Problèmes de compréhension sur le positionnement


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 24
    Points : 22
    Points
    22
    Par défaut JSplitPane - Problèmes de compréhension sur le positionnement
    Bonjour à tous,

    Je me bats depuis quelques temps avec des JSplitSpan afin de réaliser le squelette de mon application.

    Après un certain temps j'arrive à quelque chose de correct mais j'ai toujours quelques soucis lors du redimensionnement et un gros problème de compréhension.

    En gros ce que j'aimerais avoir.


    J'ai tout d'abord essayé sans setter ni de minimumSize sur mes panel ni de preferedSize sur mes SpliPane
    Je n'ai setté que les setDividerLocation(double percent)

    J'ai trois JSplitPane

    - Celui de gauche que j'ai nommé explorerSplitPane (0.5d) => contient 2 JPanel
    - Celui du haut nommé topSplitPane (0.2d) => contient explorerSplitPane et un JPanel
    - Celui qui englobe tout nommé globalSplitPane (0.8d), contient topSplitPane et un JPanel.

    J'ai mis un preferredSize à 800,600 au JPanel contenant le tout.
    Autant le dire ... le résultat n'est pas du tout celui attendu.


    J'ai ensuite essayé d'ajouter des preferredSize à mes JSplitPane
    C'est mieux mais ce n'est pas encore ça.


    Là on arrive vraiment a ce que je ne comprends pas. J'ai une taille globale, et des pourcentages. Pourquoi ai-je besoin de preciser la preferredSize pour mes JSplitPane ?

    J'ai l'impression que j'utilise mal le setDividerLocation(double percent) car mon premier JSplitPane qui a 0.5 devrait être divisé en 2 partie égale et ce n'est pas le cas.

    En ajoutant des minimumSize à mes panels j'arrive à quelque chose de proche de ce que je recherche.


    mais un redimenssionnement en fullscreen me recasse tout
    (C'est le panel en bas qui s'agrandit alors que j'aurais voulu garder mon 80/20)

    Est-ce que l'un d'entre vous aurait des pistes ou un bon cours complêt pour que je comprenne ce que je fais mal et surtout pourquoi je suis obligé de préciser des sizes lorsque je mets des pourcentages ?

    D'avance je vous remercie pour vos éclairssissements.

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 166
    Points
    4 166
    Par défaut
    As-tu utilisé la méthode setResizeWeight() ?

    Sinon, voici un exemple de ce que tu voudrais, si j'ai bien compris :
    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
     
    import java.awt.BorderLayout;
     
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JSplitPane;
    import javax.swing.SwingUtilities;
     
    public class TestJSplitPane {
     
    	private JFrame frame = new JFrame();
    	private JSplitPane splitH1 = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
    	private JPanel panelBas = new JPanel();
     
    	private JSplitPane splitV1 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
    	private JPanel hautDroit = new JPanel();
     
    	private JSplitPane splitH2 = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
    	private JPanel hautGauche = new JPanel();
    	private JPanel basGauche = new JPanel();
     
    	public static void main(String[] args) {
    		SwingUtilities.invokeLater(new Runnable() {
    			public void run() {
    				TestJSplitPane app = new TestJSplitPane();
    				app.initAndDisplay();
    			}
    		});
    	}
     
    	public void initAndDisplay() {
    		splitH1.setDividerLocation(0.8);
    		splitH1.setContinuousLayout(true);
    		splitH1.setResizeWeight(0.8);
    		splitH1.setTopComponent(splitV1);
    		splitH1.setBottomComponent(panelBas);
    		frame.getContentPane().add(splitH1);
     
    		splitV1.setDividerLocation(0.2);
    		splitV1.setContinuousLayout(true);
    		splitV1.setResizeWeight(0.2);
    		splitV1.setLeftComponent(splitH2);
    		splitV1.setRightComponent(hautDroit);
     
    		splitH2.setDividerLocation(0.5);
    		splitH2.setContinuousLayout(true);
    		splitH2.setResizeWeight(0.5);
    		splitH2.setTopComponent(hautGauche);
    		splitH2.setBottomComponent(basGauche);
     
    		frame.setSize(300, 200);
    		frame.setTitle("TEST");
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		frame.pack();
    		frame.setVisible(true);
    	}
     
    }

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 24
    Points : 22
    Points
    22
    Par défaut
    Merci beaucoup.

    C'est exactement ça, j'avais oublié (ou plutôt je ne connaissais pas) le setResizeWeight.

    Ca marche parfaitement.

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 28
    Points : 14
    Points
    14
    Par défaut Mercie
    Mercie bcp fr1man tu me sauve moi aussi

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 11/10/2012, 13h53
  2. Réponses: 1
    Dernier message: 25/09/2010, 21h10
  3. Réponses: 4
    Dernier message: 18/02/2009, 13h53
  4. Problème de compréhension sur variable %
    Par soso78 dans le forum VB.NET
    Réponses: 15
    Dernier message: 11/04/2008, 00h41
  5. Réponses: 1
    Dernier message: 31/08/2007, 10h23

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