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] créer un JComboBox dans une JFrame


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut [Debutant] créer un JComboBox dans une JFrame
    Bonjour @ tous,

    Je voudrais savoir savoir comment afficher une JComboBox dans une JFrame.
    J'ai pourtant créer l'objet mais rien ne s'affiche

    Voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    JComboBox gr = new JComboBox(); // a component that contain every group
    		gr.setLocation(new Point (X_POSITION_FIELD+20,Y_POSITION));
    		gr.setSize(new Dimension(80,20));
    quesqu'il ne vas pas ?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Points : 635
    Points
    635
    Par défaut
    En Swing la façon dont fonctionnent les composant est qu'il y a un parent (par ex une frame) qui contient des enfants qui eux même contiennent des enfants etc.

    seuls les descendants du composant racine sont affichés, donc à un moment il faut que tu fasses

    Pour rattacher ta combobox à quelque chose.

    Les appels à setLocation() et setSize() ne vont pas marcher, pour positionner les éléments il faut utiliser les layouts.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    parent.setLayout(new XXXLayout());

  3. #3
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut
    Citation Envoyé par the-gtm Voir le message
    En Swing la façon dont fonctionnent les composant est qu'il y a un parent (par ex une frame) qui contient des enfants qui eux même contiennent des enfants etc.

    seuls les descendants du composant racine sont affichés, donc à un moment il faut que tu fasses

    Pour rattacher ta combobox à quelque chose.

    Les appels à setLocation() et setSize() ne vont pas marcher, pour positionner les éléments il faut utiliser les layouts.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    parent.setLayout(new XXXLayout());
    C'est quoi ton XXXLayout();

    Ma classe au complet : je fais un jpannel
    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
    package com.datalion.exogema.gui;
     
     
    import java.awt.Dimension;
    import java.awt.Point;
     
    import javax.swing.DefaultComboBoxModel;
    import javax.swing.JButton;
    import javax.swing.JComboBox;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
     
    import com.datalion.exogema.application.Question;
    import com.datalion.exogema.gui.frame.Main;
     
     
    public class ExogemaPanel extends JPanel
    {
    	private static final long serialVersionUID = 9002220215994959121L;
    	private ButtonListener listener;
    	private int X_POSITION_FIELD=0;
    	private int X_POSITION_GROUP=125;
    	private int X_POSITION_COMBO_BOX=150;
    	private int Y_POSITION=0;
    	private JButton addButton;
    	private Main rootPane; // the main graphical component
    	public ExogemaPanel(Main rootPane)
    	{
    		super();
    		this.rootPane=rootPane;
    	}
    	/** Add a question 
             * @param A question (type : question) */
    	public void addQuestion(Question q)
    	{
    		this.Y_POSITION+=25;
    		this.X_POSITION_FIELD=this.rootPane.getWidth()/7;
    		JTextField title = new JTextField(q.getTitle());
    		title.setLocation(new Point(X_POSITION_FIELD,Y_POSITION));
    		title.setSize(new Dimension(350,20));
    		JComboBox gr = new JComboBox(); // a component that contain every group
    		gr.setLocation(new Point (X_POSITION_FIELD+20,Y_POSITION));
    		gr.setSize(new Dimension(80,20));
    		this.add(title);
    		this.add(gr);
    		DefaultComboBoxModel comboModel = new DefaultComboBoxModel();
    		comboModel.addElement("HackTrack");
    		comboModel.addElement("Java");
    		comboModel.addElement("Duke");
    		JComboBox combo = new JComboBox(comboModel);
    		JPanel jp = new JPanel();
    		jp.setPreferredSize(new Dimension(320, 200));
    		jp.add(combo);
    	}
    }

  4. #4
    Membre averti Avatar de Amine_sas
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 245
    Points : 307
    Points
    307
    Par défaut
    Salut,
    Je voudrais savoir savoir comment afficher une JComboBox dans une JFrame.
    J'ai pourtant créer l'objet mais rien ne s'affiche
    Les composants sont ajoutés au panel, ok, mais tu n'as pas ajouté le panel à la fenêtre.

    Pour ce faire, voici un bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    JFrame frame;
    ...
    Container container = frame.getContentPane();
    container.add(panel);

  5. #5
    Provisoirement toléré
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Points : 125
    Points
    125
    Par défaut
    salut
    this.getContentPane().add(jComboBox1, null);

    et si le composant est affiché sur panel
    panel.getContentPane().add(jComboBox1, null);

  6. #6
    Membre actif Avatar de ze_corsaire
    Inscrit en
    Décembre 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Décembre 2007
    Messages : 240
    Points : 273
    Points
    273
    Par défaut
    Dans ton JPanel ExogemaPanel tu crées un nouveau JPanel "jp" avec une JComboBox combo, mais "jp" n'est pas intégré à ton JPanel ExogemaPanel ou à une quelconque JFrame ?!


  7. #7
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut
    Je tente en vain d'ajouter cette faleuse JComboBox mais rien à faire
    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
    package com.datalion.exogema.gui.frame;
     
    import java.awt.Container;
    import java.awt.Dimension;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.Vector;
     
    import javax.swing.DefaultComboBoxModel;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
     
    import com.datalion.exogema.application.Question;
    import com.datalion.exogema.gui.ComboSelect;
    import com.datalion.exogema.gui.MenuBar;
    import com.datalion.exogema.gui.Panel;
     
    public class Main extends JFrame 
    {
    	private static final long serialVersionUID = 9002220215994959121L;
    	private MenuBar menubar; 
    	private Vector<Question> groups; // a list of group
    	private boolean loaded=false;
    	private Container c;
    	private DefaultComboBoxModel comboModel;
    	private JComboBox combo;
    	private JTextField display;
    	private Panel jp;
    	public static void main (String args[])
    	{
    		new Main();
    	}
    	public Main()
    	{
    		super();
    		this.menubar=new MenuBar(this);
    		this.jp = new Panel(this);
    		this.setContentPane(this.jp);
    		this.setTitle("Exogema");
    		this.setJMenuBar(menubar);
    		this.setSize(new Dimension(800,600));
    		//this.addButton=new JButton("Ajouter");
    		//this.add(addButton);
    		//this.addButton.revalidate();
    		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    		this.setVisible(true);	
    	}
    	public void setLoaded()
    	{
    		this.loaded=true;
    	}
    	public boolean isLoaded()
    	{
    		return this.loaded;
    	}
    	public void setGroups(Vector<Question> list)
    	{
    		this.groups=list;
    	}
    	public Vector<Question> getGroups()
    	{
    		return this.groups;
    	}
    	public Container getChild()
    	{
    		return super.getContentPane();
    	}
    	public void addGroupList(String item)
    	{
    			this.c = this.getContentPane();
    			this.comboModel = new DefaultComboBoxModel();
    			this.comboModel.addElement("HackTrack");
    			this.comboModel.addElement("Java");
    			this.comboModel.addElement("Duke");
    			this.combo = new JComboBox(comboModel);
    			this.combo.addActionListener(new ActionListener() {
    					public void actionPerformed(ActionEvent e) {
    						display.setText((String)combo.getSelectedItem());
    					}
    				});
    				this.jp.setPreferredSize(new Dimension(320, 200));
    				this.jp.add(combo);
    				//c.add(this.jp);
    		this.combo.setVisible(true);
    	}
    }
    vu que addGroupList(item) est bien appelé, et pourtant aucune jcombobox s'affiche.

  8. #8
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Salut,

    Tu ajoutes ta JComboBox au panel dans la méthode addGroupList mais tu n'appelles jamais cette méthode.

    Voilà ton problème.

    Remarque :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.combo.setVisible(true);
    Cela ne sert à rien.

  9. #9
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut
    si justement je l'appelle mais par une méthode d'une autre classe
    Ma JFrame s'affiche >>> clique de l'utilisateur sur Add Question (JMenuItem) >>> Un de mes actions listener attrape cette évenement >>> il créer une question >>> la création de la question déclenche la méthode

Discussions similaires

  1. [Debutant] Ouvrir un fichier Excel dans une JFrame
    Par Nico+10) dans le forum Agents de placement/Fenêtres
    Réponses: 6
    Dernier message: 27/07/2006, 14h06
  2. Disposition de composants dans une JFrame
    Par Regis.C dans le forum Agents de placement/Fenêtres
    Réponses: 11
    Dernier message: 21/03/2005, 17h38
  3. [JLabel] Chargement d'image dans une JFrame
    Par mr.t dans le forum Composants
    Réponses: 10
    Dernier message: 27/01/2005, 18h32
  4. Gestion de menu, JPanels dans une JFrame
    Par Doc.Fusion dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 03/12/2004, 18h27
  5. [JFrame] affichage de component et d'image dans une JFrame
    Par Joeleclems dans le forum Agents de placement/Fenêtres
    Réponses: 8
    Dernier message: 08/10/2004, 16h17

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