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 :

Problème de placement de mes composants et layout


Sujet :

AWT/Swing Java

  1. #1
    Membre du Club
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 113
    Points : 45
    Points
    45
    Par défaut Problème de placement de mes composants et layout
    salut,
    je post car je n'arrive pas à placer mes composants comme je le souhaite, j'utilise le SpringLayout. Vous trouverez en piece jointe une image de ce que je dois réaliser.

    en bref, j'ai en premier lieu, un JTabbedPane composé de 4 onglets ( chambres, reservation, ect..)


    Dans une class Fenetre heritant de JFrame
    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
     
    public Fenetre()
    	{
     
    		getTabbedPane();
    		this.getContentPane().add(jtp);
    		this.setVisible(true);
    		this.setSize(800, 600);
    	}
     
    	public void getTabbedPane()
    	{
    		//instanciation des onglets du tabbedpane
     
    		pnlCh=new PnlChambre();
    		pnlCl=new PnlClient();
    		pnlCat=new PnlCategorie();
    		pnlReserv=new PnlReservation();
     
    		//ajout des panels et de titre aux onglets
    		jtp=new JTabbedPane();
     
    		jtp.addTab("Chambre", pnlCh);
    		jtp.addTab("Client", pnlCl);
    		jtp.addTab("Categorie", pnlCat);
    		jtp.addTab("Reservation", pnlReserv);
     
     
    	}
    donc là, j'ajoute mes panels dans chacun des onglets

    Ensuite venons-en au placement des composants dans chaque panel!!

    Comme le placement des composants est le même dans chaque onglet et que c'est juste le contenu qui change, j'utilise une classe AbstractPanel dans la quelle , je vais creer ce qui ne change pas et dans laquelle je vais definir l'architecture et l'emplacement des composants.
    Pour ce qui est des classes PanelChambre, PanelClient, elles serviront simplement à redefinir le contenu.

    Comme vous pouvez le voir sur l'image, il ya 2 parties gauche et droite:
    a Gauche:
    2 JButtons et une Jlist en dessous
    aDroite:
    un JPanel
    C'est tout!

    Donc venons en à la classe abstract panel héritant de JPanel là où je définis la place des composants.
    PS: je ne met pas le contenu des methodes panelDroite() et listeDeGauche(), ca n'a pas d'utilité!!


    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
     
    public abstract class AbstractPanel extends JPanel
    {
    public AbstractPanel()
    	{
                    SpringLayout sp=new SpringLayout();
    		setLayout(sp);
    		add(getJbPlus(),new GridLayout());
    		add(getJbMoins(),new GridLayout());
    		listeDeGauche();
                   PanelDroite();
     
                   layout.putConstraint(SpringLayout.WEST, getJbPlus(),
    				5,
    				SpringLayout.WEST, this);
    				layout.putConstraint(SpringLayout.NORTH, getJbPlus(),
    				5,
    				SpringLayout.NORTH, this);
     
    	}
     
    public JScrollPane listeDeGauche()
    	{
             return listScrollPane;
    	}
     
    	public JButton getJbPlus()
    	{
    		jbPlus=new JButton("+");	
    		jbPlus.setBackground(Color.gray);
     
    		return jbPlus;
    	}
     
    	public JButton getJbMoins()
    	{
    		jbMoins=new JButton("-");
    		jbMoins.setBackground(Color.gray);
    		return jbMoins;
    	}
     
     
    	public JPanel panelDroite()
    	{	
    		return jPanelDroite;
     
    	}
     
    }
    je n'ai pas mis tous les layout.putConstraint pour chacun des composant car de toute façon mon probleme est que mon springLayout est sans effet sur le placemment, je ne comprends pas, quelqun a une idée.

    Si on récapitule j'ai une classe qui hérite de JFrame dans laquelle j'ajoute un JTabbedPane, dans lequel, j'ajoute pour chaque onglet un panel!

    Ce panel étant par exemple PanelChambre et héritant d'une classe AbstractPanel , elle-même héritant de JPanel.
    pfiou
    Merci par avance pour la patience de ce qui auront le courage de me lire!!

    PS: j'ai essayé avec d'autre layout et ca ne change rien non plus.
    Images attachées Images attachées  

  2. #2
    Membre du Club
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 113
    Points : 45
    Points
    45
    Par défaut
    alo ya personne snif???

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 175
    Points : 72
    Points
    72
    Par défaut
    Je pense que tu te prends trop la tete , fait tout avec gridbaglayout.

    Tu as un seul panel et tu as plus qu a disposer tes composants.

    J ai fait mon premier gridbaglayout il y a 2 jours c est pas simple au depart mais tu peut faire exactement ce que tu veux.

    Bon courage

  4. #4
    Membre du Club
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 113
    Points : 45
    Points
    45
    Par défaut
    j'ai essayé avec le gidBagLayout et il me place tous mes composants au centre.

  5. #5
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Pour le SpringLayout, il faudrait que tu nous fasses un petit programme d'une classe compilable, qu'on puisse voir et régler les choses. Avec ce layout il ne faut pas se tromper dans les contraintes.

    Sinon pour ton cas tu peux employer des layouts simples, comme le BorderLayout, en mettant un panneau à l'ouest et un autre à l'est, ou bien un BoxLayout horizontal.
    Mieux que Google, utilisez Sur Java spécialisé sur la plate-forme java !
    Pour réaliser vos applications Java dans le cadre de prestations, forfait, conseil, contactez-moi en message privé.

  6. #6
    Membre du Club
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 113
    Points : 45
    Points
    45
    Par défaut
    d'accord mais ce que je ne pige pas c'est que j'ai l'impression que peu importe le layout que j'utilise, cela est strictement sans effet sur les composants !!!!! c'est-à-dire qu'ils ne bougent pas, ils restent au centre!!!

    Par exemple j'ai essayé de placer le bouton "+" avec le GridBagLayout tout en haut à gauche du panel et il reste au centre, est-ce normal????j'ai pourtant ajouté les contraintes qu'il faut!!!

    je rappelle que j'utilise une classe fenetre héritant de JFrame dans laquelle
    j'utilise un JTabbedPane qui "addTab" chaque panel.

    Les panels qui sont ajoutés étant les même, sauf le contenu, ils héritent tous de la classe AbstractPanel qui elle-même hérite de JPanel, vous me suivez???

  7. #7
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Fais-nous un mini-programme d'une classe qui compile et reproduise ton problème en nous disant quel layout tu veux et on te fera les corrections qui vont bien.
    Mieux que Google, utilisez Sur Java spécialisé sur la plate-forme java !
    Pour réaliser vos applications Java dans le cadre de prestations, forfait, conseil, contactez-moi en message privé.

Discussions similaires

  1. Problème de positionnement de mes composants
    Par khalous91 dans le forum AWT/Swing
    Réponses: 67
    Dernier message: 27/04/2015, 15h09
  2. Réponses: 6
    Dernier message: 09/03/2012, 14h01
  3. Problème de placement des widgets dans un layout
    Par maroua_mm dans le forum Qt
    Réponses: 1
    Dernier message: 20/08/2009, 15h16
  4. Problème de placement de composants Jframe, Jpanel
    Par shensi dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 07/02/2008, 14h33
  5. [Swing] Problème de placement et de taille des composants
    Par CrazySeb dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 22/04/2006, 14h56

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