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

Interfaces Graphiques en Java Discussion :

[débutant]composantes dans une sous-fenêtre


Sujet :

Interfaces Graphiques en Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 8
    Points : 6
    Points
    6
    Par défaut [Résolu][débutant]composantes dans une sous-fenêtre
    Bonjour,

    J'aurais aimé rajouter des composantes (JButton et JTextField) à une sous-fenêtre. Comment le faire?

    La fenêtre principale et la sous-fenêtre s'affichent, mais pas les boutons et les champs:

    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
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
     
    public class Personne{
    	static JDesktopPane desktop;
     
    	static JPanel panneau = new JPanel(new GridLayout(2, 2));
     
    	String nDF;
    	int aDN;
     
    	public Personne(String nom, int annee){
    		nDF = nom;
    		aDN = annee;
    	}
     
    	public JInternalFrame versJIF(JDesktopPane dt){
    		JInternalFrame jif = new JInternalFrame("Nouvelle Personne");
    		JLabel nom = new JLabel("Nom de famille");       //étiquette "nom de famille"
    		JTextField nomChamp = new JTextField();          //champ
     
    		JLabel ann = new JLabel("Année de naissance");   //étiquette "année de naissance"
    		JTextField annChamp = new JTextField();          //champ
     
    		jif.getContentPane().add(panneau, BorderLayout.CENTER);
    		jif.setResizable(true);    jif.setClosable(true);
    		jif.setMaximizable(true);  jif.setIconifiable(true);
    		jif.setVisible(true);
     
    		jif.getContentPane().add(nom);
    		jif.getContentPane().add(nomChamp);
    		jif.getContentPane().add(ann);
    		jif.getContentPane().add(annChamp);
    		jif.setVisible(true);
    		dt.add(jif);
    		return jif;
    	}
     
    	public static void main(String[] rien){
    		Personne xy = new Personne("Ulysse", 1973);
     
    		JFrame principal = new JFrame("Fenêtre principale");
    		principal.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		desktop = new JDesktopPane();
    		principal.getContentPane().add(xy.versJIF(desktop));
    		principal.pack();
    		principal.setVisible(true);
    	}
     
    }
    Je suppose que je ne suis pas loin...

    Merci,

    UlysseD

  2. #2
    Membre averti
    Avatar de JHelp
    Inscrit en
    Octobre 2002
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 185
    Points : 444
    Points
    444
    Par défaut
    Remplaces :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    principal.getContentPane().add(xy.versJIF(desktop));
    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    xy.versJIF(desktop);
    principal.getContentPane().add(desktop);
    En effet c'est le descktop qui doit être mis dans la fénêtre et la fenêtre interne dans le descktop (ce que tu as fait d'ailleurs)
    Pour avoir une réponse efficace :
    1) Soyez précis dans vos questions
    2) Choisssez bien votre forum
    3) Consultez la FAQ et la doc avant

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Merci pour la réponse. J'ai fait le remplacement mais après, je n'ai que la fenêtre principale : la sous-fenêtre a disparu
    Ulysse D.

  4. #4
    Membre averti
    Avatar de JHelp
    Inscrit en
    Octobre 2002
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 185
    Points : 444
    Points
    444
    Par défaut
    Ha j'avais pas vu une autre erreur. Tu as oublié de donner une taille à ta JInternalFrame, par défaut elle fait 0x0 d'ou tu l'as vois pas. (méthode setSize sur la JInternalFrame)
    Autre chose, tu vas surement pas avoir l'affichage souhaité dans ta JIternalFrame, en effet, y a un probléme dans l'utilisation des Layout. Si tu nous disais le résultat que tu souhiates obtenir on pourait te guider
    Pour avoir une réponse efficace :
    1) Soyez précis dans vos questions
    2) Choisssez bien votre forum
    3) Consultez la FAQ et la doc avant

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Merci encore. J'ai ajouté setSize et j'ai la sous-fenêtre mais je n'ai toujours pas les boutons et les champs. Pour être clair, mon code est:

    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
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
     
    public class Personne{
    	static JDesktopPane desktop;
     
    	static JPanel panneau = new JPanel(new GridLayout(2, 2));
     
    	String nDF;
    	int aDN;
     
    	public Personne(String nom, int annee){
    		nDF = nom;
    		aDN = annee;
    	}
     
    	public JInternalFrame versJIF(JDesktopPane dt){
    		JInternalFrame jif = new JInternalFrame("Nouvelle Personne");
    		JLabel nom = new JLabel("Nom de famille");       //étiquette "nom de famille"
    		JTextField nomChamp = new JTextField();          //champ
     
    		JLabel ann = new JLabel("Année de naissance");   //étiquette "année de naissance"
    		JTextField annChamp = new JTextField();          //champ
     
    		jif.getContentPane().add(panneau, BorderLayout.CENTER);
    		jif.setResizable(true);    jif.setClosable(true);
    		jif.setMaximizable(true);  jif.setIconifiable(true);
    		jif.setVisible(true);
     
    		jif.getContentPane(). add(nom);
    		jif.getContentPane().add(nomChamp);
    		jif.getContentPane().add(ann);
    		jif.getContentPane().add(annChamp);
    		jif.setSize(400, 200);
    		jif.setVisible(true);
    		dt.add(jif);
    		return jif;
    	}
     
    	public static void main(String[] rien){
    		Personne xy = new Personne("Pierre", 1971);
     
    		JFrame principal = new JFrame("Fenêtre principale");
    		principal.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		desktop = new JDesktopPane();
    		xy.versJIF(desktop);
    		principal.getContentPane().add(desktop);
    		principal.setSize(600, 300);
    		principal.setVisible(true);
    	}
     
    }
    Que me manque-t-il encore ?

    Ulysse D.

  6. #6
    Membre averti
    Avatar de JHelp
    Inscrit en
    Octobre 2002
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 185
    Points : 444
    Points
    444
    Par défaut
    Comme je te l'ai dit, tiu n'as pas le résultat que tu souhaites, car tu utilises mal les layout.
    Par exemple remplaces :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    jif.getContentPane(). add(nom); 
          jif.getContentPane().add(nomChamp); 
          jif.getContentPane().add(ann); 
          jif.getContentPane().add(annChamp);
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    jif.getContentPane(). add(nom,BorderLayout.NORTH); 
          jif.getContentPane().add(nomChamp,BorderLayout.EAST); 
          jif.getContentPane().add(ann,BorderLayout.WEST); 
          jif.getContentPane().add(annChamp,BorderLayout.SOUTH);
    et la tu veras tes composants.
    Ils ne seront peut-être pas placés comme tu le souhaites. Mais je n'ai pas de don de voyance pour savoir ce que tu souhaites obtenir
    Pour avoir une réponse efficace :
    1) Soyez précis dans vos questions
    2) Choisssez bien votre forum
    3) Consultez la FAQ et la doc avant

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Merci, le problème de la visibilité des boutons est résolu. Je vais essayer de trouver une solution pour les mettre au "bon endroit".

    Ulysse

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

Discussions similaires

  1. Ouvrir la commande "system" dans une sous-fenêtre
    Par b.david dans le forum Débuter
    Réponses: 5
    Dernier message: 17/03/2012, 09h49
  2. Gestion d'annulation des actions effectuées dans une sous-fenêtre
    Par randriano dans le forum Entity Framework
    Réponses: 13
    Dernier message: 04/04/2011, 15h57
  3. Réponses: 8
    Dernier message: 24/02/2009, 16h41
  4. Sous-formulaire dans une nouvelle fenêtre
    Par Satch dans le forum IHM
    Réponses: 2
    Dernier message: 21/06/2007, 08h40
  5. [Débutant][HTML]Ouvrir le résultat d'un formulaire dans une nouvelle fenêtre
    Par virgul dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 13/09/2006, 12h26

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