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 :

Positionnement d'un JButton dans un JPanel


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
    Ingénieur
    Inscrit en
    Janvier 2009
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Janvier 2009
    Messages : 209
    Par défaut Positionnement d'un JButton dans un JPanel
    Bonsoir ,

    Je développe une IHM en utilisant Swing , j'ai un probleme de positionnement des JButton sur les JPanel .
    Ci-joint : le code + le screenshot ( Je n'arrive pas à positionner les deux boutons " Gauche/Droite " au milieu de l'axe Y ) . J'ai utilisé la methode " setBounds " mais en vain .
    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
     
     
    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.FlowLayout;
    import java.awt.Toolkit;
     
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JSplitPane;
    import javax.swing.JTabbedPane;
     
    public class FenetrePrin {
     
    	JPanel contenuFenetre ; 
    	JButton btnDr ; 
    	JButton btnGa ;
    	JButton btnHa ;
    	JButton btnBa ;
    	JPanel GroupBtn ; 
    	JLabel lblMap ; 
    	JButton test ; 
    	FenetrePrin(){ 
     
    		// Recupération des dimensions de l'ecran 
    		JFrame frm = new JFrame();
    		Toolkit tk = frm.getToolkit(); 
    		Dimension dim = tk.getScreenSize(); 
    		int width = dim.width; 
    		int height = dim.height; 
    		//System.out.println("dimension : " + w +"x" + h); 
    		//frm.setBounds(0,0,w,h);	
    		frm.setExtendedState(frm.MAXIMIZED_BOTH);
     
     
    		// Panel 1 contenant la Jtable a gauche et le Groupe de btn + Map a droite 
    		contenuFenetre = new JPanel();
    		BorderLayout dis = new BorderLayout();
    		contenuFenetre.setLayout(dis);
     
    		lblMap = new JLabel("Map");
    		JLabel lbl = new JLabel("Jtable");	
    		JTabbedPane tp = new JTabbedPane();
    		contenuFenetre.add("West",tp);
     
     
    		GroupBtn = new JPanel();
    		BorderLayout dip2 = new BorderLayout();
    		GroupBtn.setLayout(dip2);
    		btnDr = new JButton("Droite");
    		// btnDr.setPreferredSize(new Dimension(40,40));
    		btnGa = new JButton("Gauche");
    		btnBa = new JButton("Bas");
    		btnHa = new JButton("Haut");
    		// btnHa.setBounds(0, 0, 10, 20);
     
    		 // Serie de Panel pour les boutons se trouvant dans une GridLayout cela pour un meilleur positionnement 
    		JPanel PanelBtnDroite=new JPanel();
    		FlowLayout flD = new FlowLayout();
    		PanelBtnDroite.setLayout(flD);
    		btnDr.setBounds(0, height/2, 0, 0);
            PanelBtnDroite.add(btnDr);
     
     
    		JPanel PanelBtnHaut=new JPanel(); 
    		PanelBtnHaut.add(btnHa); 
    		JPanel PanelBtnBas=new JPanel(); 
    		PanelBtnBas.add(btnBa);
     
    		JPanel PanelBtnGauche=new JPanel(); 
    		PanelBtnGauche.add(btnGa);
    		// Fin des pannaux de Bouton ! 
     
    		// Ajout sur la gridLayout des pannaux contenant des boutons 
    		GroupBtn.add("West",PanelBtnGauche);
    		GroupBtn.add("East", PanelBtnDroite);
    		GroupBtn.add("South",PanelBtnBas);
    		GroupBtn.add("North",PanelBtnHaut);
    		GroupBtn.add("Center",lblMap);
    		contenuFenetre.add("East",GroupBtn);
    		// Split qui divise la fenetre en deux et en horizontal avec ajout des deux grands Groupes de Composants 
    		JSplitPane sp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,contenuFenetre,GroupBtn);
    		//sp.setOrientation(JSplitPane.HORIZONTAL_SPLIT );
    		//System.out.println(sp.getDividerLocation());
     
    		// Split au milieu par défaut ( lors de l'execution de l'application ) 
    		sp.setDividerLocation(width/2);
     
     
    		//System.out.println(width/2  + "\n" + height/2);
    		frm.setContentPane(sp);
    		//frm.setContentPane(tp);
    		//frm.pack();
    		//frm.setSize(300,400);
     
     
     
    		frm.setVisible(true) ;
     
    	}
     
     
    }
    Images attachées Images attachées  

  2. #2
    Membre chevronné Avatar de Ceddoc
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 493
    Par défaut
    Il y a de nombreux tutoriels sur le positionnement d'éléments en swing. Si tu compte réaliser tout une application swing je te conseille de te mettre tout de suite à l'utilisation du GridBagLayout qui est un peu plus complexe à prendre en main mais bien plus "performant"

    http://baptiste-wicht.developpez.com...=afficher#L4.1

  3. #3
    Membre confirmé
    Profil pro
    Ingénieur
    Inscrit en
    Janvier 2009
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Janvier 2009
    Messages : 209
    Par défaut
    Merci pour le tutoriel mais est ce que tu as une solution a ce genre de probleme ( Sans utilisation du GridBagLayout ) .

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Citation Envoyé par Eausport Voir le message
    Merci pour le tutoriel mais est ce que tu as une solution a ce genre de probleme ( Sans utilisation du GridBagLayout ) .
    Tu peux utiliser un BoxLayout pour placer un bouton au milieu d'une zone verticale. Tu ajouteras trois composants dans ton BoxLayout : une "glue" verticale, ton bouton, et à nouveau une "glue" verticale.
    La "glue" verticale s'obtient via javax.swing.Box.createVerticaleGlue(). Je t'encourage à aller voir la Javadoc.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  5. #5
    Membre confirmé
    Profil pro
    Ingénieur
    Inscrit en
    Janvier 2009
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Janvier 2009
    Messages : 209
    Par défaut
    Merci pour ta réponse , mais ou je dois placer ce layout dans mon code ,
    est ce que je le place dans le JPanel qui se trouve dans un BorderLayout ,
    par exemple pour le bouton Gauche : je crée un BoxLayout et je place le bouton dedans ?

    C'est ça l'idée ?

  6. #6
    Membre confirmé
    Profil pro
    Ingénieur
    Inscrit en
    Janvier 2009
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Janvier 2009
    Messages : 209
    Par défaut
    ça marche avec un BoxLayout : ) .

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

Discussions similaires

  1. Positionnement d'un JButton dans un GridLayout
    Par adissa357 dans le forum Agents de placement/Fenêtres
    Réponses: 10
    Dernier message: 11/11/2013, 02h28
  2. positionner un .gif animé dans un JPanel Java
    Par carottebleue dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 11/04/2013, 18h03
  3. Creation Jbutton dans Jpanel
    Par taitai83 dans le forum Composants
    Réponses: 6
    Dernier message: 13/10/2009, 14h13
  4. positionnement d'une image dans un jpanel
    Par isankem dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 27/06/2007, 00h35
  5. Réponses: 5
    Dernier message: 13/06/2006, 16h14

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