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 :

Espace entre élément dans JPanel


Sujet :

AWT/Swing 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
    109
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 109
    Par défaut Espace entre élément dans JPanel
    Bonjour,

    J'ai crée un JPanel et j'ai mis quelque éléments dedans centré verticalement. Cependant, j'aimerais qu'il y ait des espaces entre chaque éléments, mais je ne sais pas quel propriété utilisé pour le faire...

    merci
    a+

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 178
    Par défaut
    les Jpanel ne gerent pas la position des éléments, c'est les Layout qui font ca

  3. #3
    Membre éclairé Avatar de Belegkarnil
    Inscrit en
    Juin 2005
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juin 2005
    Messages : 289
    Par défaut
    Tu peux utiliser un XYLayout();
    Je te donne le code d'un XYLayout() que j'ai amélioré puisque tu ne pouvais positionner que 100 composants :

    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
    import java.awt.*;
    import javax.swing.*;
    import java.util.*;
     
    class XYLayout implements LayoutManager {
        Dimension size;
    	private JComponent[] components;
    	private int[] componentX;
    	private int[] componentY;
    	private int[] componentH;
    	private int[] componentW;
    	private int numComponents = 0;
     
        public XYLayout(int width, int height) {
            size = new Dimension(width, height);
    		components = new JComponent[0];
    		componentX = new int[0];
    		componentY = new int[0];
    		componentW = new int[0];
    		componentH = new int[0];
        }
    	public int getIDComponent(JComponent comp){
    		int retour = -1;
    		for(int i=0;i<components.length;i++){
    			if(comp==components[i]) {
    				retour=i;
    				i=components.length;
    			}
    		}
    		return retour;
    	}
    	public int[] getDefinition(int id){
    			int retour[] = new int[4];
    			retour[0]=componentX[id];
    			retour[1]=componentY[id];
    			retour[2]=componentW[id];
    			retour[3]=componentH[id];
    			return retour;
    	}
    	public void setDefinition(int id,int[] param){
    			componentX[id]=param[0];
    			componentY[id]=param[1];
    			componentW[id]=param[2];
    			componentH[id]=param[3];
    	}
        public void setSize(Dimension s) {
            size = s;
        }
        public Dimension getSize() {
            return size;
        }
        public void addLayoutComponent(String n, Component c) {
    		try{
    		int longueur = components.length+1;
    		int[] componentXTemp = new int[longueur],
    				componentYTemp = new int[longueur],
    				componentWTemp = new int[longueur],
    				componentHTemp = new int[longueur];
    		JComponent[] componentsTemp = new JComponent[longueur];
    		for(int i=0;i<longueur-1;i++){
    			componentsTemp[i]=components[i];
    			componentXTemp[i]=componentX[i];
    			componentYTemp[i]=componentY[i];
    			componentWTemp[i]=componentW[i];
    			componentHTemp[i]=componentH[i];
    		}
    		componentsTemp[numComponents]= (JComponent)c;
    			StringTokenizer st = new StringTokenizer(n,",");
    			componentXTemp[numComponents] = Integer.parseInt(st.nextToken());
    			componentYTemp[numComponents] = Integer.parseInt(st.nextToken());
    			componentWTemp[numComponents] = Integer.parseInt(st.nextToken());
    			componentHTemp[numComponents] = Integer.parseInt(st.nextToken());
    			numComponents++;
    			components=componentsTemp;
    			componentX=componentXTemp;
    			componentY=componentYTemp;
    			componentW=componentWTemp;
    			componentH=componentHTemp;
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
        }
        public void removeLayoutComponent(Component c){
        }
        public Dimension preferredLayoutSize(Container parent) {
            return size;
        }
        public Dimension minimumLayoutSize(Container parent) {
            return size;
        }
        public void layoutContainer(Container parent) {
            if(parent.countComponents()==0)return;
    		for(int i=0;i<numComponents;i++) {
    			components[i].reshape(componentX[i],componentY[i],componentW[i],componentH[i]);
    			components[i].validate();
    		}
        }
    }

  4. #4
    Membre éclairé Avatar de Belegkarnil
    Inscrit en
    Juin 2005
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juin 2005
    Messages : 289
    Par défaut
    Pour l'utiliser, tu fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    JFrame fen = new JFrame();
    Container co = fen.getContentPane();
    int largeur = 500, //largeur de ton composant
        hauteur = 300; //hauteur de ton composant
    co.setLayout(new XYLayout(largeur,hauteur));
    fen.setBounds(0,0,largeur,hauteur);
    co.add("10,20,100,25",new JButton("Mon bouton"));
    // Tu dois entrer en paramètre la position de tes composants.
    // Ici, ce sera :
    // x = 10
    // y =20
    // largeur = 100
    // hauteur = 25
    Voila ;-)

  5. #5
    Membre Expert
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    En général les layout manager peuvent prendre en paramètre dans leur constructeur l'espace ( horizontal et vertical ) entre les différents composants qu'il contient ( appelé hgap et vgap dans la javadoc ).
    Ainsi, si tu veux mettre un grand espacement ( 100 pixels par exemple ) tu peux construire tes layouts de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    BorderLayout bl=new BorderLayout(100,100);
    FlowLayout fl=new FlowLayout(FlowLayout.CENTER,100,100);
    GridLayout gl=new GridLayout(nLignes,nColonnes,100,100);
    etc...

  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
    Et accessoirement certains layout permettent de fixer des marges aux composants, en particulier le GridBagLayout

Discussions similaires

  1. [2.3.1] Gérer les espaces entre éléments
    Par peuplier dans le forum BIRT
    Réponses: 8
    Dernier message: 01/11/2013, 19h09
  2. Détecter si espace entre section dans fichier ini !
    Par cincap dans le forum Débuter
    Réponses: 18
    Dernier message: 29/10/2012, 16h42
  3. Affichage éléments dans JPanel
    Par bbtreso dans le forum Débuter
    Réponses: 7
    Dernier message: 26/08/2011, 15h49
  4. Supprimer espace entre référence dans la bibliographie
    Par duvi86 dans le forum Bibliographies - Index - Glossaires
    Réponses: 0
    Dernier message: 01/02/2010, 14h28
  5. Espace entre guillemets dans un lstset
    Par Sandro Munda dans le forum Mise en forme
    Réponses: 2
    Dernier message: 17/11/2007, 14h11

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