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 :

MENU / ActionListener et texte qui ne s'affiche pas


Sujet :

Interfaces Graphiques en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 20
    Par défaut MENU / ActionListener et texte qui ne s'affiche pas
    Bonjour,

    Mon code consiste à afficher une barre de menu, avec deux menus : fichier(items : nouveau, ouvrir, fermer) et edit.
    Je ne m'intéresse pour l'instant au'aux Items nouveau ouvrir et fermer de façon à ce que mon code affiche certains textes dès que l'un de ces Items est sélectionné..
    Pas de soucis avec l'affichage de menus mais aucun de mes textes ne s'affiche..
    Mon énoncé exige que le code soit écrit dans une seule classe :
    ----> Mon 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
    112
    113
    114
    115
    116
    117
    118
    119
     
    import java.awt.*;
    import java.awt.Event.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
     
     
     
    public class DemoMenuCopy2 extends Frame implements  ActionListener {
     
      String texte;
    //creation des composants
    	//creation d'une barre de menu
     
    	MenuBar mBar=new MenuBar();
     
    	//creation d un menu file
    	Menu file=new Menu("Fichier");
     
    	//Creation des item du menu file
    	MenuItem nouveau  		=new MenuItem	("Nouveau");
    	MenuItem ouvrir			=new MenuItem	("Ouvrir");
    	MenuItem fermer			=new MenuItem	("Fermer");
    	MenuItem separerFile 	        =new MenuItem	("-");
    	MenuItem quitter		        =new MenuItem	("Quitter");
     
    	//creation d un menu edit et ces items
    	Menu edit				=new Menu		("Edit");
    	MenuItem copier			=new MenuItem	("Copier");
    	MenuItem couper			=new MenuItem	("Couper");
    	MenuItem coller			=new MenuItem	("Coller");
    	MenuItem separerEdit	        =new MenuItem	("-");
     
    	//creation du menu special
    	Menu special			=new Menu		("Special");
    	MenuItem premier		        =new MenuItem	("Premier");
    	MenuItem deuxieme		=new MenuItem	("Deuxieme");
    	MenuItem troisieme		=new MenuItem	("Troisieme");
     
     
    //constructeur
     
    	DemoMenuCopy2(String Menuu)
    	{
    		super(Menuu);
     
    		//ajouter la barre de menu
    		setMenuBar(mBar);
     
    		//ajouter le menu file a la barre de menu ainsi que ses items
    		file.add(nouveau);
    		file.add(ouvrir);
    		file.add(fermer);
    		file.add(separerFile); 	
    		file.add(quitter);
    		mBar.add(file);
    		nouveau.addActionListener(this);
    		ouvrir.addActionListener(this);
    		fermer.addActionListener(this);
     
    		//ajouter le menu edit a la barre de menu ainsi que ses items
     
     
    		   // ajouts de qlq items 
    		edit.add(copier);
    		edit.add(couper);
    		edit.add(coller); 	
     
    		edit.add(separerEdit);
    		    // menu emboité special
    		special.add(premier);
    		special.add(deuxieme);
    		special.add(troisieme);
    			//l ajouter a edit
    		edit.add(special);
    		   // ajouter d autres items et ajouter edit a la barre de menu
    		edit.add(new CheckboxMenuItem("Debug"));
    		edit.add(new CheckboxMenuItem("Testing"));
    		mBar.add(edit);
     
    	}
     
    	public void actionPerformed(ActionEvent ev){
                    Object SEV=ev.getSource();
     
    		if(SEV==nouveau){
    			texte="Créer un nouveau fichier";
     
    		}
    	         if(SEV==ouvrir){
    			texte="Ouverure d'un  fichier";
     
    		}
    	        if(SEV==fermer){
    			texte="Fermeture du fichier";
     
    		}
    		repaint();
     
    	}
     
    	public void paint(Graphics g){
     
    		g.drawString(texte,150,50);
     
    	}
     
    	//instanciation, taille de la fenetre, lisibilité et affichage du texte
     
    		public static void main(String[] args)
    		{
    			DemoMenuCopy2 monmenu=new DemoMenuCopy2("Menu");
    			monmenu.setSize(600,220);
    			monmenu.setVisible(true);
     
    		}
     
    }
    et je reçois ça :
    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
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: String is null
    	at sun.java2d.SunGraphics2D.drawString(Unknown Source)
    	at DemoMenuCopy2.paint(DemoMenuCopy2.java:105)
    	at sun.awt.RepaintArea.paintComponent(Unknown Source)
    	at sun.awt.RepaintArea.paint(Unknown Source)
    	at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source)
    	at sun.awt.windows.WWindowPeer.handleEvent(Unknown Source)
    	at java.awt.Component.dispatchEventImpl(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Window.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.run(Unknown Source)
    et même quand je sépare le code en deux classes rien ne s'affiche :

    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
     
     
    import java.awt.CheckboxMenuItem;
    import java.awt.Frame;
    import java.awt.Graphics;
    import java.awt.Menu;
    import java.awt.MenuBar;
    import java.awt.MenuItem;
     
     
    public class DemoMenuCopy extends Frame {
     
     
    //creation des composants
    	//creation d'une barre de menu
     
    	MenuBar mBar=new MenuBar();
     
    	//creation d un menu file
    	Menu file=new Menu("Fichier");
     
    	//Creation des item du menu file
    	MenuItem nouveau  		=new MenuItem	("Nouveau");
    	MenuItem ouvrir			=new MenuItem	("Ouvrir");
    	MenuItem fermer			=new MenuItem	("Fermer");
    	MenuItem separerFile 	=new MenuItem	("-");
    	MenuItem quitter		=new MenuItem	("Quitter");
     
    	//creation d un menu edit
    	Menu edit				=new Menu		("Edit");
    	MenuItem copier			=new MenuItem	("Copier");
    	MenuItem couper			=new MenuItem	("Couper");
    	MenuItem coller			=new MenuItem	("Coller");
    	MenuItem separerEdit	=new MenuItem	("-");
     
    	//creation du menu special
    	Menu special			=new Menu		("Special");
    	MenuItem premier		=new MenuItem	("Premier");
    	MenuItem deuxieme		=new MenuItem	("Deuxieme");
    	MenuItem troisieme		=new MenuItem	("Troisieme");
     
     
    //constructeur
     
    	DemoMenuCopy(String Menuu)
    	{
    		super(Menuu);
     
    		//ajouter la barre de menu
    		setMenuBar(mBar);
     
    		//ajouter le menu file a la barre de menu ainsi que ses items
    		file.add(nouveau);
    		file.add(ouvrir);
    		file.add(fermer);
    		file.add(separerFile); 	
    		file.add(quitter);
    		mBar.add(file);
     
    		//ajouter le menu edit a la barre de menu ainsi que ses items
     
     
    		   // ajouts de qlq items 
    		edit.add(copier);
    		edit.add(couper);
    		edit.add(coller); 	
     
    		edit.add(separerEdit);
    		    // menu emboité special
    		special.add(premier);
    		special.add(deuxieme);
    		special.add(troisieme);
    			//l ajouter a edit
    		edit.add(special);
    		   // ajouter d autres items et ajouter edit a la barre de menu
    		edit.add(new CheckboxMenuItem("Debug"));
    		edit.add(new CheckboxMenuItem("Testing"));
    		mBar.add(edit);
     
     
    	 // attribuer les ecouteurs
    	Detection detection=new Detection(this);
    	nouveau.addActionListener(detection);
    	ouvrir.addActionListener(detection);
    	fermer.addActionListener(detection);
     
    	detection.getGraphics();
        paint(detection.getGraphics());
    	}	
     
     
     
     
     
     
     
    //instanciation, taille de lafenetre et lisibilité et affichage du texte
     
    	public static void main(String[] args)
    	{
    		DemoMenuCopy monmenu=new DemoMenuCopy("Menu");
    		monmenu.setSize(600,220);
    		monmenu.setVisible(true);
     
    	}
     
     
    }
    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
     
    import java.awt.*;
    import java.awt.event.*;
     
     
    public class Detection extends Frame implements ActionListener{
    	String texte;
    	DemoMenuCopy monmenu;
     
    	//constructeur
    	Detection(DemoMenuCopy monmenu){
    		super();
    		this.monmenu=monmenu;
    	}
     
    	public void actionPerformed(ActionEvent ev){
     
    		Object SEV=ev.getSource();
     
    		if(SEV==monmenu.nouveau){
    			texte="Créer un nouveau fichier";
     
    		}
    		else if(SEV==monmenu.ouvrir){
    			texte="Ouverure d'un  fichier";
     
    		}
    		else if(SEV==monmenu.fermer){
    			texte="Fermeture du fichier";
     
    		}
    		repaint();
     
    	}
     
    	public void paint(Graphics g){
     
    		g.drawString(texte,150,50);
     
    	}
     
     
     
     
    }
    J'arrive pas à trouver mon erreur merci de bien vouloir m'aider

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Le message d'erreur est pourtant clair : java.lang.NullPointerException: String is null. La variable texte n'ayant pas été initialisée, lors du premier affichage de ta fenêtre, l'appel de drawString ne peut être fait. Pour l'éviter, tu peux initialiser texte avec une chaîne vide ("") dès sa déclaration.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 20
    Par défaut
    Je n'obtiens plus d'erreur dans ce cas mais y'a toujours rien qui s'affiche.

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Je pense que la coordonnée y est trop petite (la valeur 50 dans l'appel de drawString) : du coup, le texte s'affiche trop haut dans la fenêtre et le menu s'affiche par dessus, le cachant.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 20
    Par défaut
    Waw dans le mile ! ça marche merci beaucoup ! j'y ai même pas pensé..

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

Discussions similaires

  1. un text qui ne s'affiche pas sur une datagrid
    Par Msysteme dans le forum C#
    Réponses: 10
    Dernier message: 10/10/2011, 17h34
  2. Text qui ne s'affiche pas dans internet explorer
    Par cuisto44000 dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 02/03/2010, 15h54
  3. Réponses: 3
    Dernier message: 12/05/2007, 18h24
  4. Un popup menu qui ne s'affiche pas (sans parent)
    Par Spartan03 dans le forum GTK+ avec C & C++
    Réponses: 1
    Dernier message: 14/03/2007, 19h28
  5. Menu contextuel qui ne s'affiche pas
    Par Bul59 dans le forum Dreamweaver
    Réponses: 2
    Dernier message: 26/01/2007, 18h11

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