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 :

[DEBUTANT] Affichage de jpanel


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre actif
    Inscrit en
    Mai 2004
    Messages
    297
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 297
    Points : 207
    Points
    207
    Par défaut [DEBUTANT] Affichage de jpanel
    Bonjour,

    J'ai créé une classe qui affiche la frame et dans ma classe pcVue j'ai créé un Jpanel qui contient des labels ...
    Mais je n'arrive pas à afficher le tout alors quand passant par des borderlayout ca marche j'ai du rater une etape si qq'un pouvais m'éclaircir

    Merci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    	private JFrame f = new JFrame("test");
    	PCVue pCVue = new PCVue();
    	f.getContentPane().add(pCVue);
    	f.pack();f.setVisible;
    [ Modéré par vedaer ]
    -> Ajout des balises code
    [ Merci de respecter les Règles du Forum ]

  2. #2
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 17
    Points : 19
    Points
    19
    Par défaut
    salut,
    pourrais tu mettre le code de ta classe pcVue et de main ?

  3. #3
    Membre actif
    Inscrit en
    Mai 2004
    Messages
    297
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 297
    Points : 207
    Points
    207
    Par défaut
    Salut,

    Voici le code :
    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
     
    public static void main(String[] args) throws RemoteException {
    		new SurveyorIhm();
    	}
     
    PourPCVue :
     
    public class PCVue extends Container implements Serializable {
     
     
    	private String nomVue;
    	private Button btn;
    	private Label lblDNbPc; 
    	private Label lblDType;
    	private Label lblDTypeComputer;
    	private Label lblDNom;
    	private Label lblVNom;
    	private Label lblVTypeComputer;
    	private Label lblVType; 
    	private Label lblVNbPc; 
    	private PC pcModele; 
    	private PCController controleur; 
    	private UtilisateurVue utilisateurVue = new UtilisateurVue();
     
    	public PCVue () { 
     
    		JPanel pcVuePanel  = new JPanel();
    		btn =  new Button("Go"); 
     
    		// Initialisation des labels de description des atttributs
    		lblDNom  		   = new Label("Nom                                  :");
    		lblDTypeComputer   = new Label("Type de machine           :");
    		lblDType           = new Label("Type                                  :");
    		lblDNbPc           = new Label("Nb PC                               :");
     
    		// Initialisation des valeurs des atttributs
    		lblVTypeComputer = new Label();
    		lblVNom 		 = new Label();
    		lblVType 		 = new Label();
    		lblVNbPc 		 = new Label();
     
    		btn.setBounds(0,-50,25,25);
    		// Localisation des labels de description des atttributs 
    		lblDNom.setBounds(0,-150,150,15);
    		lblDTypeComputer.setBounds(0,-130,150,15);
    		lblDType.setBounds(0,-110,150,15);
    		lblDNbPc.setBounds(0,-90,150,15);
     
    		// Localisation des valeurs des atttributs 
    		lblVNom.setBounds(160,-150,100,15);
    		lblVTypeComputer.setBounds(160,-130,100,15);
    		lblVType.setBounds(160,-110,100,15);
    		lblVNbPc.setBounds(160,-90,100,15);
     
    		// Ajout au frame principal	
    		/*add(btn);
    		add(lblDTypeComputer,BorderLayout.NORTH);
    		add(lblVTypeComputer);
    		add(lblDNom);
    		add(lblVNom);
    		add(lblDType);
    		add(lblVType);
    		add(lblDNbPc);
    		add(lblVNbPc);*/
     
    		pcVuePanel.add(btn);
    		pcVuePanel.add(lblDTypeComputer,BorderLayout.NORTH);
    		pcVuePanel.add(lblVTypeComputer);
    		pcVuePanel.add(lblDNom);
    		pcVuePanel.add(lblVNom);
    		pcVuePanel.add(lblDType);
    		pcVuePanel.add(lblVType);
    		pcVuePanel.add(lblDNbPc);
    		pcVuePanel.add(lblVNbPc);
     
    		pcVuePanel.doLayout();
     
    		pcVuePanel.setVisible(true);
    		pcVuePanel.show();
     
    		//Initialisation pour model MVC		 		  
    		pcModele = new PC(this); 
    		controleur = new PCController(pcModele, btn); 
     
    		// creation du lien d'ecoute aux evenements: 
    		btn.addActionListener(controleur); 
     
    		//Gestion des Onglets
    		//pane.addTab("système d'exploitation", new WindowsVue());
     
    	} 
    	/**
             * methode de Component pour faire l'affichage: 
             */ 
    	public void paint (Graphics g) { 
    		// Dans cette methode, on demande au modele de "calculer" le message 
    		// a afficher, et on l'affiche: 
    		lblVTypeComputer.setText(pcModele.getTypeComputer()); 
    		lblVNom.setText(pcModele.getNom()); 
    		lblVType.setText(pcModele.getType()); 
    		lblVNbPc.setText(Integer.toString(pcModele.getNbPC())); 
    	} 
     
     
    	/// METHODES
    	/**
             * Permet à la classe Hub de s'afficher 
             */
    	public void afficher() {
    		System.out.println(nomVue);
    	}
    Merci pour votre aide j'y comprend plus rien là

  4. #4
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 17
    Points : 19
    Points
    19
    Par défaut
    Salut,
    à moins que je me plante je crois qu'on peut pas trop mettre de classes héritant d'un container dans une JFrame parce qu'elle même hérite de Container.

    Ensuite tu peux améliorer ton code en virant une des deux expressions dans :
    " pcVuePanel.setVisible(true);
    pcVuePanel.show(); " car ça veu dire la même chose.

    Sinon, je vois pas trop le problème et me pose la question sur l'existence de la méthode paint

  5. #5
    Membre expérimenté Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Points : 1 635
    Points
    1 635
    Par défaut
    b'jour,


    je te propose d'enlever ton pcVuePanel.doLayout()
    et de mettre un pcVuePanel.setLayout(null)
    avant d'ajouter tes composants.

    Voilà.

  6. #6
    Membre expérimenté Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Points : 1 635
    Points
    1 635
    Par défaut
    re,

    à moins que je me plante je crois qu'on peut pas trop mettre de classes héritant d'un container dans une JFrame parce qu'elle même hérite de Container.
    Oui, tu te plantes. La méthode add dans Frame (qui est en faite dans
    Container) prend un Component en paramètre. Or, la classe Container
    hérite de la classe Component. Donc pas de problème.

  7. #7
    Membre actif
    Inscrit en
    Mai 2004
    Messages
    297
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 297
    Points : 207
    Points
    207
    Par défaut
    Merci pour vos réponses

    J'ai remplacé pcVuePanel.doLayout()
    par pcVuePanel.setLayout(null) mais cela ne fait rien j'ai toujours rien dans ma frame ...

    Il doit y avoir un truc qui m'échappe.

  8. #8
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    Pourquoi tu fais un add(pcVuePanel) a ton conatainer (PCVue) apres avoir creer ton pcVuePanel :

    Un truc du style :
    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
    pcVuePanel.add(btn); 
    pcVuePanel.add(lblDTypeComputer,BorderLayout.NORTH); 
    pcVuePanel.add(lblVTypeComputer); 
    pcVuePanel.add(lblDNom); 
    pcVuePanel.add(lblVNom); 
    pcVuePanel.add(lblDType); 
    pcVuePanel.add(lblVType); 
    pcVuePanel.add(lblDNbPc); 
    pcVuePanel.add(lblVNbPc); 
     
    pcVuePanel.doLayout(); 
     
    pcVuePanel.setVisible(true); 
    pcVuePanel.show();
     
    add(pcVuePanel, borderLayout.CENTER); //ICI AJOUT
    Sinon je vois pas comment ton Container PCVue sait qu'il contient ton panel pcVuePanel

  9. #9
    Membre expérimenté Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Points : 1 635
    Points
    1 635
    Par défaut
    re,

    même si tu mets le setLayout(null) au tout début (au moins avant les add et après la construction du panel???

    D'ailleur y à un truc que je ne comprend pas. Ton pcVuePanel, tu l'ajoutes à quoi ?

  10. #10
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    Citation Envoyé par yann2
    re,

    même si tu mets le setLayout(null) au tout début (au moins avant les add et après la construction du panel???

    D'ailleur y à un truc que je ne comprend pas. Ton pcVuePanel, tu l'ajoutes à quoi ?
    Bien vu l'aveugle
    Ca vient de là (cosmos38240 => regarde juste un peu plus haut pour le code

  11. #11
    Membre actif
    Inscrit en
    Mai 2004
    Messages
    297
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 297
    Points : 207
    Points
    207
    Par défaut
    C'est vrai j'avais pas mis le add du pcVuePanel


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    pcVuePanel.add(btn);
    pcVuePanel.add(lblDTypeComputer);
    pcVuePanel.add(lblVTypeComputer);
    pcVuePanel.add(lblDNom);
    pcVuePanel.add(lblVNom);
    pcVuePanel.add(lblDType);
    pcVuePanel.add(lblVType);
    pcVuePanel.add(lblDNbPc);
    pcVuePanel.add(lblVNbPc);
     
    pcVuePanel.doLayout(); 
    pcVuePanel.setVisible(true); 
    add(pcVuePanel); //ICI AJOUT
    Par contre ca marche toujours pas
    Je peux bien normalement afficher un jpanel dans une frame non ?

    Merci pour votre aide

  12. #12
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    Pouquoi passe passes-tu par un Container, apparemment ca te sert rien
    fais directement un extends JPanel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    PCVue extends JPanel implements Serializable
    ...
    add(btn); 
    add(lblDTypeComputer,BorderLayout.NORTH); 
    add(lblVTypeComputer); 
    add(lblDNom); 
    add(lblVNom); 
    add(lblDType); 
    add(lblVType); 
    add(lblDNbPc); 
    add(lblVNbPc);
    ...
    Ensuite y vaut mieux que tu mette paintComponent que paint tout court
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    /** 
    * methode de Component pour faire l'affichage: 
    */ 
    public void paintComponent (Graphics g) { 
    // Dans cette methode, on demande au modele de "calculer" le message 
    // a afficher, et on l'affiche: 
    lblVTypeComputer.setText(pcModele.getTypeComputer()); 
    lblVNom.setText(pcModele.getNom()); 
    lblVType.setText(pcModele.getType()); 
    lblVNbPc.setText(Integer.toString(pcModele.getNbPC())); 
    }
    Et enfin dans ta frame tu laisse ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    private JFrame f = new JFrame("test"); 
    PCVue pCVue = new PCVue(); 
    f.getContentPane().add(pCVue); 
    f.pack(); //enleve peut etre et fixe une taille fixe avec setSize(haut,larg);
    f.setVisible(true);
    Voila

  13. #13
    Membre actif
    Inscrit en
    Mai 2004
    Messages
    297
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 297
    Points : 207
    Points
    207
    Par défaut
    Ca marche merci à tous

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

Discussions similaires

  1. [debutant] affichage ds un JtextArea avec classes independan
    Par tony_big_guy dans le forum Composants
    Réponses: 3
    Dernier message: 27/11/2005, 23h04
  2. [Debutant]Affichage de menu
    Par Beleim dans le forum Windows
    Réponses: 5
    Dernier message: 19/07/2005, 11h26
  3. [debutant]affichage sur le meme niveau
    Par christophebmx dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 10/02/2005, 15h34
  4. [VGL][debutant] Affichage d'un volume en couleur
    Par Faft dans le forum OpenGL
    Réponses: 2
    Dernier message: 04/05/2004, 16h13
  5. Réponses: 3
    Dernier message: 09/02/2003, 01h09

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