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 :

Problème de placement de composants Jframe, Jpanel


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 44
    Points : 31
    Points
    31
    Par défaut Problème de placement de composants Jframe, Jpanel
    Bonjour à tous!
    Je suis pas très bon en java...J'espère que vous aurez une solution à mon problème... Je dois faire un jeu. Pour commencer au lieu de faire mes classes, j'aime bien commencer par l'interface graphique qui rend le développement plus attrayant je trouve.

    BOn bref! je voudrais pouvoir positionner 2 Jpanel dans 1 JFrame.
    Et surtout pouvoir jouer sur le positionnement de mes 2 JPanel. Ce qui n'est pas le cas.

    Voici mon code: (bien organisé je vous l'assure)

    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
    106
    107
    108
    109
    110
    111
    112
    113
     
    public class Monopoly  extends JFrame implements WindowListener, ActionListener{
     
    	private JPanel panelGauche, panelDroit, panelBas;
    	private Frame ChoixJoueur = new Frame();
    	private Box textBar;
    	private Panel PanelJoueur = new Panel(); 
    	private TextField auteur = new TextField();
    	private TextField Joueur1 = new TextField();
    	private TextField Joueur2 = new TextField(); 
    	private TextField Joueur3 = new TextField(); 
    	private TextField Joueur4 = new TextField(); 
    	private TextField Joueur5 = new TextField(); 
     
    	private Button Play = new Button("Jouer");
    	private Button Exit = new Button("Exit");
    	private Image img = null;
     
    	public Monopoly (){
     
    		super();
    	        monPanelDroite();
    		monPanelGauche();		
    		monPanelBas();
    		mafenetre();
     
    		//monChoixJoueur();
     
     
    	}
     
    	private Panel monChoixJoueur(){
     
    		this.PanelJoueur = new Panel(new GridLayout(0,1));
     
    		PanelJoueur.add(new Label("Joueur 1"));
    		PanelJoueur.add(this.Joueur1);
    		PanelJoueur.add(new Label("Joueur 2"));
    		PanelJoueur.add(this.Joueur2);
    		PanelJoueur.add(new Label("Joueur 3"));
    		PanelJoueur.add(this.Joueur3);
    		PanelJoueur.add(new Label("Joueur 4"));
    		PanelJoueur.add(this.Joueur4);
    		PanelJoueur.add(new Label("Joueur 5"));
    		PanelJoueur.add(this.Joueur5);
    		PanelJoueur.add(new Label(""));
    		PanelJoueur.add(this.Play);
    		PanelJoueur.add(this.Exit);
     
    		this.ChoixJoueur.add(PanelJoueur);
    		this.ChoixJoueur.setVisible(true);
    		this.ChoixJoueur.setLocation(200, 50);
    		this.ChoixJoueur.setSize(300, 500);
    		this.ChoixJoueur.setTitle("Inscrivez les noms des joueurs !");
    		this.ChoixJoueur.setResizable(false);
    		this.Play.addActionListener(this);
    		this.Exit.addActionListener(this);	
     
    		return this.PanelJoueur;		
    	}
     
     
    	private JPanel monPanelBas(){
     
    		this.panelBas = new JPanel();
    		//this.textBar = Box.createHorizontalBox();
    		//this.textBar.setEnabled(false);
    		//this.textBar.add(this.auteur);
    		this.auteur.setEditable(false);		
    		this.auteur.setLocation(0, 0);
    		this.auteur.setText("Réalisé par Moi");
    		this.panelBas.add(this.auteur);		
    		this.panelBas.setLayout(new GridLayout(0,1));
    		//this.panelBas.add(this.textBar);		
    		this.panelBas.setVisible(true);
     
    		return this.panelBas;
    	}
     
     
    	private JPanel monPanelGauche(){
     
    		this.panelGauche = new JPanel();
    		this.panelGauche.setBackground(java.awt.Color.BLACK);// = new MonopolyPlateau();
    		//this.panelGauche.setBounds(0,0,200, 600);
    		this.panelGauche.setVisible(true);
    		return this.panelGauche;
    	}	
     
    	private JPanel monPanelDroite(){
     
    		this.panelDroit = new JPanel();
    		this.panelDroit.setBackground(java.awt.Color.BLUE);
    		//this.panelDroit.setBounds(0, 0, 600, 600);
    		this.panelDroit.setVisible(true);		
    		return this.panelDroit;
    	}	
     
    	private void mafenetre(){
     
    	    this.setTitle("Monopoly V1.0");		// Son titre
    	    this.setSize(800, 600);				// Dimensionnement de la fenêtre
            this.setLocationRelativeTo(null); 	// Centrer la fenêtre
            this.setResizable(false);			
    	    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
    	    this.setLayout(new BorderLayout());
    	    this.add(this.panelGauche, BorderLayout.CENTER);
    	    this.add(this.panelDroit, BorderLayout.LINE_END);
    	    this.add(this.panelBas, BorderLayout.SOUTH);
     
    	    this.setVisible(true);
    	}
    Le problème c'est que comme ça je nérrive pas à jouer sur la dimension de mes 2 Jpanels.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.add(this.panelGauche, BorderLayout.CENTER);
    Ca me prends tout le cadre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.add(this.panelDroit, BorderLayout.LINE_END);
    Ca me prend effectivement uniquement une bordure sur la droite...

    Que faire?

  2. #2
    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 : 43
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    monGrandJPanel.setLayout( null );
    monJPanelInterne.setBounds( x, y, width, height );
    monGrandJPanel.add( monJPanel );
    monGrandJPanel.setPreferredSize( new Dimension( totalWidth, totalHeight ) );
    //totalWidth et totalHeight sont évidemment fonctions des tailles et positions des composants internes
    C'est ce que j'utilise pour les parties figées d'une interface.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 44
    Points : 31
    Points
    31
    Par défaut
    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
    	private void mafenetre(){
     
    	    this.setTitle("Monopoly V1.0");		// Son titre
    	    this.setSize(1000, 700);				// Dimensionnement de la fenêtre
            this.setLocationRelativeTo(null); 	// Centrer la fenêtre
            this.setResizable(false);			
    	    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
    	    this.panelGauche.setLayout( null );
    	    this.panelGauche.setBounds( 0, 0, 800, 600 );
    	    this.panelGauche.add( new MonopolyPlateau() );
    	    this.panelGauche.setPreferredSize( new Dimension( 800, 600 ) );
     
     
    	    this.panelDroit.setLayout( null );
    	    this.panelDroit.setBounds( 800, 0, 200, 600 );
    	    this.panelDroit.add( new MonopolyMenu() );
    	    this.panelDroit.setPreferredSize( new Dimension( 200, 600 ) );
     
    	    this.panelBas.setLayout( null );
    	    this.panelBas.setBounds( 0, 600, 1000, 700 );
    	    this.panelBas.add( new MonopolyMenu() );
    	    this.panelBas.setPreferredSize( new Dimension( 1000, 100 ) );
     
    	    //this.setLayout(new BorderLayout());
    	    this.add(this.panelGauche);
    	    this.add(this.panelDroit);
    	    this.add(this.panelBas);    
     
    	    this.setVisible(true);
    	}
    C'est ça que tu me dis de faire... en gros!

    Je suis pas sur du résultat... Et il possbile d'afficher le contour de mes jpanel, une petite bordure en couleur pour vriament voir mon fucking résultat?

  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 : 43
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Si tout est fixe, oui, c'est ça. Pense aussi à mettre à null le layout de la fenêtre.
    Par contre, on est bien d'accord là dessus : si tu redimensionnes la fenêtre, rien ne bouge, tout est fixe.
    Pour voir un résultat, tu peux utiliser la méthode "setBackground( Color )" sur les JPanel.

Discussions similaires

  1. [JPanel] placement des composants
    Par nadsky dans le forum Agents de placement/Fenêtres
    Réponses: 10
    Dernier message: 30/06/2009, 15h14
  2. petit problème de placement d'un JPanel
    Par anarkia dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 11/09/2008, 16h57
  3. [JFrame] Problème de disposition des composants
    Par alizee971 dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 25/08/2008, 14h47
  4. Problème de placement de mes composants et layout
    Par mnemonic78 dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 28/10/2007, 16h39
  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