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 :

Remplacer des JTextField Par des JComboBox


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2008
    Messages : 69
    Par défaut Remplacer des JTextField Par des JComboBox
    Bonjour,

    Actuellement je développe une application cliente en Java. Dans un premier temps j'ai une interface de saisie à compléter. Après validation et un controle des données saisies, je dois retourner les données avec une norme, et si il y a plusieurs possibilités je dois remplacer la zone de saisie JTextField par un JComboBox afin que l'utilisateur puisse choisir une possibilité parmis celle que l'application va lui proposer.
    Donc j'aimerais savoir comment faire pour remplacer le JTextField? Et surtout est-ce possible?

    J'espère que j'ai été clair... :p

  2. #2
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2008
    Messages : 69
    Par défaut
    Quelqu'un aurait une réponse à me donner?

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Je ne vois pas pourquoi ça ne marcherait pas.
    Mais bon, avec le peu d'infos que tu donnes...

  4. #4
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2008
    Messages : 69
    Par défaut
    Je ne sais pas comment renommer ou transformer le JTextField en JComboBox! Ya une methode existante?

    Par exemple j'ai :

    JTextField m_civilite = new JTextField;

    Et je veux que m_civilite deviens un comboBox directement.

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2008
    Messages : 69
    Par défaut
    Je vous présente le code pour facilité la chose :

    PanneauControleAdresse : Fenetre principale
    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
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    package com.laposte.sna.mascadia.vue;
     
    import java.awt.BorderLayout;
    import java.awt.FlowLayout;
    import java.awt.GridLayout;
     
    import javax.swing.BorderFactory;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JComboBox;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
     
    import com.laposte.sna.mascadia.controleur.ControleAdresseListener;
    import com.laposte.sna.mascadia.controleur.EffacerContenuListener;
    import com.laposte.sna.mascadia.controleur.ViderZoneDeSaisieListener;
     
    /**
     * @description cette classe represente un panneau qui sera ajoute à la frame
     *              principale sous forme d'onglet
     * @version 2.00
     * @author Florian Guérin
     */
    public class PanneauControleAdresse extends JPanel {
     
    	public JComboBox m_cb_civilite;
     
    	public JTextField m_txt_nom = new JTextField("Nom");
    	public JTextField m_txt_prenom = new JTextField("Prénom");
    	public JTextField m_txt_remise = new JTextField(
    			"Numéro d'appartement, étage...");
    	public JTextField m_txt_complement_adr = new JTextField(
    			"Bâtiment, Immeuble...");
    	public JTextField m_txt_voie = new JTextField("Rue, Avenue, Cours...");
    	public JTextField m_txt_complement_commune = new JTextField();
    	public JTextField m_txt_code_postal = new JTextField();
    	public JTextField m_txt_pays = new JTextField();
     
    	/**
             * CONSTRUCTEUR
             */
    	public PanneauControleAdresse() {
    		super();
     
    		this.setLayout(new BorderLayout());
     
    		// PARTIE CONTENU
    		// Panneau contenant les libelles des champs
    		JPanel panneauLabel = new JPanel(new GridLayout(7, 1, 5, 5));
    		panneauLabel.add(new JLabel("DESTINATAIRE"));
    		panneauLabel.add(new JLabel("REMISE"));
    		panneauLabel.add(new JLabel("COMPLEMENT"));
    		panneauLabel.add(new JLabel("NUMERO ET LIBELLE DE VOIE"));
    		panneauLabel.add(new JLabel("COMPLEMENT COMMUNE OU SERVICE POSTAL"));
    		panneauLabel.add(new JLabel("CODE POSTAL ET LOCALITE"));
    		panneauLabel.add(new JLabel("PAYS"));
     
    		// Panneau contenant les zones de saisie
    		JPanel panneauInput = new JPanel(new GridLayout(7, 1, 5, 5));
    		// Panneau contenant les saisies pour le destinataire
    		JPanel panneauDestinataire = new JPanel(new GridLayout(1, 3, 5, 5));
    		String[] civilite = { "Civilité", "M.", "Mme." };
    		m_cb_civilite = new JComboBox(civilite);
     
    		panneauDestinataire.add(m_cb_civilite);
    		panneauDestinataire.add(m_txt_nom);
    		panneauDestinataire.add(m_txt_prenom);
    		// Ajout du panneauDestinataire dans le panneauInput
    		panneauInput.add(panneauDestinataire);
     
    		// Suite des zones de saisie
    		JTextField m_txt_remise = new JTextField(
    				"Numéro d'appartement, étage...");
    		JTextField m_txt_complement_adr = new JTextField(
    				"Bâtiment, Immeuble...");
    		JTextField m_txt_voie = new JTextField("Rue, Avenue, Cours...");
    		JTextField m_txt_complement_commune = new JTextField();
    		JTextField m_txt_code_postal = new JTextField();
    		JTextField m_txt_pays = new JTextField();
    		// Ajout des zones de saisie au panneauInput
    		panneauInput.add(m_txt_remise);
    		panneauInput.add(m_txt_complement_adr);
    		panneauInput.add(m_txt_voie);
    		panneauInput.add(m_txt_complement_commune);
    		panneauInput.add(m_txt_code_postal);
    		panneauInput.add(m_txt_pays);
     
    		// Evenement pour vider les champs de saisies quand au clique
    		m_txt_nom.addMouseListener(new ViderZoneDeSaisieListener(m_txt_nom,
    				"Nom"));
    		m_txt_prenom.addMouseListener(new ViderZoneDeSaisieListener(
    				m_txt_prenom, "Prénom"));
    		m_txt_remise.addMouseListener(new ViderZoneDeSaisieListener(
    				m_txt_remise, "Numéro d'appartement, étage..."));
    		m_txt_complement_adr.addMouseListener(new ViderZoneDeSaisieListener(
    				m_txt_complement_adr, "Bâtiment, Immeuble..."));
    		m_txt_voie.addMouseListener(new ViderZoneDeSaisieListener(m_txt_voie,
    				"Rue, Avenue, Cours..."));
     
    		// Panneau contenant les feux d'emission des erreurs ou de validation
    		JPanel panneauFeux = new JPanel(new GridLayout(7, 1, 5, 5));
    		// Création de l'image des boutons par defaut
    		ImageIcon imgIcon = new ImageIcon("./lib/feu_blanc.png");
    		// Création des boutons
    		JButton bt_destinataire = new JButton("", imgIcon);
    		JButton bt_remise = new JButton("", imgIcon);
    		JButton bt_complementAdr = new JButton("", imgIcon);
    		JButton bt_voie = new JButton("", imgIcon);
    		JButton bt_complementCommune = new JButton("", imgIcon);
    		JButton bt_codePostal = new JButton("", imgIcon);
    		JButton bt_pays = new JButton("", imgIcon);
    		// Ajout les boutons au panel
    		panneauFeux.add(bt_destinataire);
    		panneauFeux.add(bt_remise);
    		panneauFeux.add(bt_complementAdr);
    		panneauFeux.add(bt_voie);
    		panneauFeux.add(bt_complementCommune);
    		panneauFeux.add(bt_codePostal);
    		panneauFeux.add(bt_pays);
     
    		// Panneau contenant les panneaux de libeles, de saisies et de feux
    		JPanel panneauContenu = new JPanel(new BorderLayout());
    		panneauContenu.setBorder(BorderFactory
    				.createTitledBorder("SAISIE D'ADRESSE"));
    		panneauContenu.add(panneauLabel, BorderLayout.WEST);
    		panneauContenu.add(panneauInput, BorderLayout.CENTER);
    		panneauContenu.add(panneauFeux, BorderLayout.EAST);
     
    		// Panneau correspondant au boutons
    		JPanel panneauBoutons = new JPanel(new FlowLayout());
    		JButton bt_controler = new JButton("Controler");
    		JButton bt_effacer = new JButton("Effacer");
    		JButton bt_enregistrer = new JButton("Enregistrer");
    		bt_enregistrer.setEnabled(false);
    		panneauBoutons.add(bt_controler);
    		panneauBoutons.add(bt_effacer);
    		panneauBoutons.add(bt_enregistrer);
     
    		// ActionListener des boutons
    		bt_controler.addActionListener(new ControleAdresseListener(
    				m_cb_civilite, m_txt_nom, m_txt_prenom, m_txt_remise,
    				m_txt_complement_adr, m_txt_voie, m_txt_complement_commune,
    				m_txt_code_postal, m_txt_pays));
    		bt_effacer.addActionListener(new EffacerContenuListener(m_cb_civilite,
    				m_txt_nom, m_txt_prenom, m_txt_remise, m_txt_complement_adr,
    				m_txt_voie, m_txt_complement_commune, m_txt_code_postal,
    				m_txt_pays));
     
    		this.add(panneauContenu, BorderLayout.NORTH);
    		this.add(panneauBoutons, BorderLayout.CENTER);
    	}
     
    	public JComboBox getM_cb_civilite() {
    		return m_cb_civilite;
    	}
     
    	public void setM_cb_civilite(JComboBox m_cb_civilite) {
    		this.m_cb_civilite = m_cb_civilite;
    	}
     
    	public JTextField getM_txt_nom() {
    		return m_txt_nom;
    	}
     
    	public void setM_txt_nom(JTextField m_txt_nom) {
    		this.m_txt_nom = m_txt_nom;
    	}
     
    	public JTextField getM_txt_prenom() {
    		return m_txt_prenom;
    	}
     
    	public void setM_txt_prenom(JTextField m_txt_prenom) {
    		this.m_txt_prenom = m_txt_prenom;
    	}
     
    	public JTextField getM_txt_remise() {
    		return m_txt_remise;
    	}
     
    	public void setM_txt_remise(JTextField m_txt_remise) {
    		this.m_txt_remise = m_txt_remise;
    	}
     
    	public JTextField getM_txt_complement_adr() {
    		return m_txt_complement_adr;
    	}
     
    	public void setM_txt_complement_adr(JTextField m_txt_complement_adr) {
    		this.m_txt_complement_adr = m_txt_complement_adr;
    	}
     
    	public JTextField getM_txt_voie() {
    		return m_txt_voie;
    	}
     
    	public void setM_txt_voie(JTextField m_txt_voie) {
    		this.m_txt_voie = m_txt_voie;
    	}
     
    	public JTextField getM_txt_complement_commune() {
    		return m_txt_complement_commune;
    	}
     
    	public void setM_txt_complement_commune(JTextField m_txt_complement_commune) {
    		this.m_txt_complement_commune = m_txt_complement_commune;
    	}
     
    	public JTextField getM_txt_code_postal() {
    		return m_txt_code_postal;
    	}
     
    	public void setM_txt_code_postal(JTextField m_txt_code_postal) {
    		this.m_txt_code_postal = m_txt_code_postal;
    	}
     
    	public JTextField getM_txt_pays() {
    		return m_txt_pays;
    	}
     
    	public void setM_txt_pays(JTextField m_txt_pays) {
    		this.m_txt_pays = m_txt_pays;
    	}
    }

    ActionListener correspondant au bouton Controler.
    J'explique brievement. De cette AL on lance un controle de l'adresse saisie. Puis on obtient donc l'adresse avec les normes postales, mais si l'adresse est mal renseignée et qu'elle peut correspondre à plusieurs adresses, pour les lignes 4 et 6 (ligne 4 : libelle voie. ligne 6 : code postal + ville) la fonction me retourne des vecteurs contenants les différentes possibilité.
    Le but est donc de remplacer les champs de saisies m_txt_voie et m_txt_cp par des listes déroulantes contenants les vecteurs.

    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
    package com.laposte.sna.mascadia.controleur;
     
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.Vector;
     
    import javax.swing.JComboBox;
    import javax.swing.JOptionPane;
    import javax.swing.JTextField;
     
    import com.laposte.sna.mascadia.Mascadia;
    import com.laposte.sna.mascadia.modele.otr.Adress;
     
    ;
     
    /**
     * Projet : Mascadia
     * 
     * @author LVC429 : Florian Guerin
     * @creation le 23/10/2009 à 17h 19
     * 
     *           Cette classe ActionListener permet le traitement de la saisie d'une
     *           adresse
     * 
     */
    public class ControleAdresseListener implements ActionListener {
     
    	private JComboBox m_cb_civilite;
    	private JTextField m_txt_nom;
    	private JTextField m_txt_prenom;
    	private JTextField m_txt_remise;
    	private JTextField m_txt_complement_adr;
    	private JTextField m_txt_voie;
    	private JTextField m_txt_complement_commune;
    	private JTextField m_txt_code_postal;
    	private JTextField m_txt_pays;
     
    	public ControleAdresseListener(final JComboBox p_cb_civilite,
    			final JTextField p_txt_nom, final JTextField p_txt_prenom,
    			final JTextField p_txt_remise,
    			final JTextField p_txt_complement_adr, final JTextField p_txt_voie,
    			final JTextField p_txt_complement_commune,
    			final JTextField p_txt_code_postal, final JTextField p_txt_paye) {
     
    		m_cb_civilite = p_cb_civilite;
    		m_txt_nom = p_txt_nom;
    		m_txt_prenom = p_txt_prenom;
    		m_txt_remise = p_txt_remise;
    		m_txt_complement_adr = p_txt_complement_adr;
    		m_txt_voie = p_txt_voie;
    		m_txt_complement_commune = p_txt_complement_commune;
    		m_txt_code_postal = p_txt_code_postal;
    		m_txt_pays = p_txt_paye;
    	}
     
    	public void actionPerformed(final ActionEvent ev) {
     
    		try {
    			Mascadia maskdia = new Mascadia();
     
    			maskdia.setAdresseFR((m_cb_civilite.getSelectedItem()).toString(),
    					m_txt_nom.getText(), m_txt_prenom.getText(), m_txt_remise
    							.getText(), m_txt_complement_adr.getText(), "",
    					m_txt_voie.getText(), m_txt_complement_commune.getText(),
    					"", m_txt_code_postal.getText(), 38);
     
    			maskdia.controle();
     
    			m_txt_nom.setText(maskdia.m_adresseFR.getDestinataire());
    			m_txt_prenom.setText(maskdia.m_adresseFR.getDestinatairePrenom());
    			m_txt_remise.setText(maskdia.m_adresseFR.getRemise());
    			m_txt_complement_adr.setText(maskdia.m_adresseFR.getComplement());
    			m_txt_complement_commune.setText(maskdia.m_adresseFR.getServicePostal());
     
    			Vector monV = maskdia.m_adresseFR.getListeCP();
    			System.out.println(monV.size());
     
    			if(monV.size() > 1) {
    				// Ici j'essaie de remplacer le m_txt_voie
    				JComboBox m_txt_voie = new JComboBox(monV);		
    			}else {
    				System.out.println("\n" + maskdia.m_adresseFR.getCodePostal());
    				System.out.println(maskdia.m_adresseFR.getCodeErreurCP());
    			}
    		} catch (Exception e) {
    		}
     
    	}
    }
    J'espère que j'ai été plus clair cette fois ^^.

    Merci d'avance, bonne journée.

Discussions similaires

  1. [CSS] Remplacer un tableau par des div et css
    Par irenee dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 03/05/2006, 16h04
  2. Comment remplacer le clavier par des boutons ?
    Par aliwassem dans le forum Langage
    Réponses: 1
    Dernier message: 14/12/2005, 19h00
  3. Réponses: 3
    Dernier message: 07/12/2005, 13h51
  4. Remplacer des boutons par des menus déroulants?
    Par drthodt dans le forum Access
    Réponses: 3
    Dernier message: 20/09/2005, 17h37
  5. Réponses: 5
    Dernier message: 30/05/2005, 16h58

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