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

Développement Web en Java Discussion :

Problème d'affichage JTextField/JButton [Débutant(e)]


Sujet :

Développement Web en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2012
    Messages : 3
    Par défaut Problème d'affichage JTextField/JButton
    Bonjour à tous, je débute en Java

    J'ai un souci, je n'arrive pas à afficher un champ texte/bouton dans ma fenêtre lorsque je clique sur "rechercher" dans mon menu.

    En fait, ces 2 composants s'affichent seulement si je redimensionne la fenêtre vers le haut!

    Quelqu'un a t-il déjà eu ce problème.

    Voici le code de mon programme:
    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
     
    import javax.swing.*;
    //import javax.swing.event.*;
    import java.awt.*;
    import java.awt.event.*;
    //import java.io.*;
     
    public class Affichage extends JFrame implements ActionListener
    {
    	private JMenuBar Menu;
    	private JMenu Medicament, Aide, APropos;
    	private JMenuItem Nouveau, Rechercher;
    	private JButton boutonRecherche;
    	private JTextField zoneRecherche;
     
    	public Affichage()
    	{
    		//Arret du programmme lors de la fermeture de la fenetre
    		setDefaultCloseOperation(EXIT_ON_CLOSE);
     
    		//impossible de changer la taille de la fenetre
    		//setResizable(false);
     
    		//Couleur de fond de la fenetre
    		setBackground(Color.WHITE);
     
    		//icone
    		setIconImage(null);
     
    		//initialise taille et emplacement de la fenetre du programme
    		setBounds(200,150,800,600);
     
    		//initialise titre de la fenetre principale
    		setTitle("Medicament");
     
     
    		/*creation d'un menu
    		 * Médicament
    		 * 			Nouveau
    		 * 			Rechercher
    		 * Aide
    		 * A propos
    		 */
    		Menu = new JMenuBar();
    		setJMenuBar(Menu);
    		Medicament = new JMenu("Médicament");
    		Menu.add(Medicament);
    		Nouveau = new JMenuItem("Nouveau");
    		Medicament.add(Nouveau);
    		Rechercher = new JMenuItem("Rechercher");
    		Medicament.add(Rechercher);
    		Aide = new JMenu("Aide");
    		Menu.add(Aide);
    		APropos = new JMenu("A propos");
    		Menu.add(APropos);
     
    		//choix d'une gestionnaire d'affichage
    		setLayout(new FlowLayout());
     
    		//associe un écouteur aux differents sous-titres du Menu
    		Nouveau.addActionListener(this);
    		Rechercher.addActionListener(this);
     
    		//creation champ de recherche
    		zoneRecherche = new JTextField("",10);
     
    		//creation d'un bouton
    		boutonRecherche = new JButton("Rechercher");
     
    	}
     
    	public void actionPerformed(ActionEvent ev)
    	{
     
    		if(ev.getSource() == Rechercher)
    		{
    			add(zoneRecherche);
    			add(boutonRecherche);
    		}
    	}
    }
     
    public class IFSIMED 
    {
    	//méthode principale
    	public static void main(String[] args)
    	{
    		Affichage fenetre = new Affichage();
    		fenetre.setVisible(true);
    	}
    }




    Merci

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2005
    Messages : 241
    Par défaut
    Bonjour,

    Quelques points importants:
    - lorsqu'on utilise Swing, il faut laisser l'EventDispatcherThread travailler avec les composants.
    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
     
    public class IFSIMED 
    {
    	//méthode principale
    	public static void main(String[] args)
    	{
    		SwingUtilities.invokeAndWait(
    			new Runnable() {
    				public void run() {
    					Affichage fenetre = new Affichage();
    					fenetre.setVisible(true);
    				}
    			}
    		);
    	}
    }
    - Un second point, c'est que la modification d'un composant n'est prise en compte que s'il demande son ré-affichage ( en dehors des actions systèmes ).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public void actionPerformed(ActionEvent ev)
    	{
     
    		if(ev.getSource() == Rechercher)
    		{
    			add(zoneRecherche);
    			add(boutonRecherche);
    			// indique que notre hierarchie de composant a changée, et qu'il faut appliquer le layout à nouveau.
    			revalidate();
    			// demande ensuite à redessiner le composant.
    			repaint();
    		}
    	}
    Cordialement,
    S. Desbois

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/10/2014, 10h22
  2. Problème d'affichage JTextField/JButton
    Par Nat_33 dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 16/10/2012, 18h03
  3. Problème affichage JTextField avec ActionListener
    Par phoenix420 dans le forum Composants
    Réponses: 5
    Dernier message: 24/06/2010, 13h29
  4. [JTextField] Problème d'affichage dans un champ ...
    Par mitje dans le forum Composants
    Réponses: 2
    Dernier message: 01/02/2006, 15h41
  5. [JTextField][JDBC] Problème d'affichage
    Par deathwing dans le forum JDBC
    Réponses: 4
    Dernier message: 12/05/2004, 14h50

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