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 :

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException


Sujet :

Interfaces Graphiques en Java

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2
    Par défaut Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    Je suis en train de réaliser un simulateur de régulateur de vitesse et lorsque j'essai de de faire apparaitre une boite de dialogue pour cocher des options à partir d'un menu ca ne fonctionne pas et j'obtiens ces belles petites erreures

    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at IHM.FenetrePrincipale.SetVisibleFenetrePanne(FenetrePrincipale.java:111)
    at IHM.FenetrePrincipale.actionPerformed(FenetrePrincipale.java:97)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.AbstractButton.doClick(Unknown Source)
    at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
    at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(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.pumpOneEventForHierarchy(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)


    Je pense que cela doit être une erreure plutôt de débutant mais je ne comprend vraiment pas pourquoi.

    Voici la classe a laquelle j'essai de faire appel :

    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
    package IHM;
     
    import java.awt.*;
    import java.awt.event.*;
     
     
    import javax.swing.*;
     
     
    public class FenetrePannes extends JFrame implements ActionListener {
     
    	//JPanels
    	private JPanel _Fenetre;
    	private JPanel _Buttons;
    	//JLabels
    	private JLabel _LabelFenetre;
    	//JButtons
    	private JButton _InjectButton;
    	private JButton _CancelButton;
    	//JCheckBox
    	private JCheckBox _Tachymetre1;
    	private JCheckBox _Tachymetre2;
    	private JCheckBox _BDV;
    	private JCheckBox _Regulateur;
    	private JCheckBox _Roue;
     
     
    	public FenetrePannes() {
     
    		//this.setVisible(true); 
    		//Instanciation
    		instanciation();
    		//Construction
    		Construction();
    		//Listener
    		Listener();
     
    		this.add(this._Fenetre);
    		this.setDefaultCloseOperation(HIDE_ON_CLOSE);
    		this.pack();
    	}
     
    	private void instanciation()
    	{
    		this.setTitle("Panneau des Pannes");
    		ImageIcon _Pannes = new ImageIcon("Pannes.jpg");
    		this._Fenetre = new JPanel();
    		this._Buttons = new JPanel();
    		this._LabelFenetre = new JLabel("Panneau Injection de Pannes", _Pannes, SwingConstants.CENTER);
    		this._Tachymetre1 = new JCheckBox("Tachymètre 1");
    		this._Tachymetre2 = new JCheckBox("Tachymètre 2");
    		this._BDV = new JCheckBox("Boite de Vitesse");
    		this._Regulateur = new JCheckBox("Regulateur");
    		this._InjectButton = new JButton("Injection des pannes");
    		this._CancelButton = new JButton("Annuler");
    		this._Roue = new JCheckBox("Crevaison");
    	}
     
    	private void Construction()
    	{
    		this._Buttons.setLayout(new FlowLayout(SwingConstants.CENTER));
    		this._Buttons.add(this._InjectButton);
    		this._Buttons.add(this._CancelButton);
     
    		this._Fenetre.setLayout(new GridLayout(7,1));
    		this._Fenetre.add(this._LabelFenetre);
    		this._Fenetre.add(this._Tachymetre1);
    		this._Fenetre.add(this._Tachymetre2);
    		this._Fenetre.add(this._BDV);
    		this._Fenetre.add(this._Regulateur);
    		this._Fenetre.add(this._Roue);
    		this._Fenetre.add(this._Buttons);
    		//Container c= this.getContentPane();
    		//c.setLayout(new GridLayout(2,1));
    		//c.add(_Fenetre);
    		//c.add(_Buttons);
    	}
     
    	private void Listener()
    	{
    		this._InjectButton.addActionListener(this);
    		this._CancelButton.addActionListener(this);
    	}
     
    	private void ButtonPerformed(ActionEvent e)
    	{
    		if(e.getSource() == this._InjectButton)
    		{
    			this.setVisible(false);
    		}
    		if(e.getSource() == this._CancelButton)
    		{
    			this.setVisible(false);
    		}
    	}
     
    	public boolean getEtatTachy1()
    	{
    		if(this._Tachymetre1.getAction() == null)
    			return  false;
    		else
    			return true;
    	}
    	public boolean getEtatTachy2()
    	{
    		if(this._Tachymetre2.getAction() == null)
    			return  false;
    		else
    			return true;
    	}
    	public boolean getEtatRoue()
    	{
    		if(this._Roue.getAction() == null)
    			return  false;
    		else
    			return true;
    	}
    	public boolean getEtatBDV()
    	{
    		if(this._BDV.getAction() == null)
    			return  false;
    		else
    			return true;
    	}
    	public boolean getEtatRegulateur()
    	{
    		if(this._Regulateur.getAction() == null)
    			return  false;
    		else
    			return true;
    	}
    	public void actionPerformed(ActionEvent e) 
    	{
    		ButtonPerformed(e);
    	}
     
     
     
    	public static void main(String[] args) {
    		FenetrePannes Fenetre=new FenetrePannes();
    		Fenetre.setVisible(true);
     
    	}
     
    }

    Et voici la classe qui est la "principale" qui doit appeler la precedente lorsque l'on clique sur "Menu => Menu d'injection de Panne => Montrer"

    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
    package IHM;
     
    import java.awt.*;
    import java.awt.event.*;
     
    import javax.swing.*;
     
    public class FenetrePrincipale extends JFrame implements ActionListener,  MouseListener{
     
     
    	//private JTextField _nameTextField;
    	//private JButton _okButton;
    	//private JButton _cancelButton;
     
     
    	private Scrollbar _BarreAccelerateur;
    	private Scrollbar _BarredeFrein;
    	//JProgressBar
    	private JProgressBar _Vitesse;
    	private JProgressBar _Regime;
    	//private JMenuItem _Creer3;
    	private JMenuBar _MenuBar;
    	private JMenu _Menu;
    	private JMenu _MenuDesPannes;
    	private JMenuItem _MenuPannesMontrer;
    	private JMenuItem _MenuPannesCacher;
    	private JMenuItem _MenuExit;
     
    	//Classes Graphiques
    	private FenetrePannes _FenetrePanne;
     
     
    	public FenetrePrincipale() {
     
     
    		super();
    		this.setVisible(true);
    		this.setTitle("Simulateur");
    		this.CreationFenetre(); //Efficace?
    		this.CreationMenu();
     
     
     
    		this.listenerMenu();
     
     
     
     
     
    		this.pack();
    		this.setExtendedState(JFrame.MAXIMIZED_BOTH);
    	}
     
     
    	private void CreationMenu()
    	{
    		//JMenus
    		this._MenuBar = new JMenuBar();
    		this._Menu = new JMenu("Menu");
    		this._MenuDesPannes = new JMenu("Menu d'injection de pannes");
    		this._MenuPannesMontrer = new JMenuItem("Montrer");
    		this._MenuPannesCacher = new JMenuItem("Cacher");
    		this._MenuExit = new JMenuItem("Fermer");
    		//Mise en place Des menus
    		this._MenuBar.add(_Menu);
    		this._Menu.add(_MenuDesPannes);
    		this._Menu.add(_MenuExit);
    		this._MenuDesPannes.add(_MenuPannesMontrer);
    		this._MenuDesPannes.add(_MenuPannesCacher);
    		this.setJMenuBar(_MenuBar);
     
     
     
     
     
     
    	}
     
     
    	private void listenerMenu()
    	{
    		this._Menu.addActionListener(this);
    		this._MenuPannesMontrer.addActionListener(this);
    		this._MenuPannesCacher.addActionListener(this);
    		this._MenuExit.addActionListener(this);
    	}
     
    	private void CreationFenetre()
    	{
    		FenetrePannes _FenetrePanne=new FenetrePannes();
    		_FenetrePanne.setVisible(false);
    	}
    	public void SetVisibleFenetrePanne(boolean b)
    	{
    		this._FenetrePanne.setVisible(b);
    	}
     
    	public void actionPerformed(ActionEvent e)
    	{
    		//Bar De Menu
    		if(e.getSource() == this._MenuPannesMontrer)
    		{
    			//this._FenetrePanne.setVisible(true);
    			SetVisibleFenetrePanne(true);
    		}
    		if(e.getSource() == this._MenuPannesCacher)
    		{
    			SetVisibleFenetrePanne(false);
    		}
    		if(e.getSource() == this._MenuExit)
    		{
    			System.exit(0);
    		}
    	}
     
     
     
    	public static void main(String[] args) {
    		FenetrePrincipale Fenetre=new FenetrePrincipale();
     
     
     
    	}
     
     
    	public void mouseClicked(MouseEvent arg0) {
    		// TODO Auto-generated method stub
     
    	}
    	public void mouseEntered(MouseEvent arg0) {
    		// TODO Auto-generated method stub
     
    	}
    	public void mouseExited(MouseEvent arg0) {
    		// TODO Auto-generated method stub
     
    	}
    	public void mousePressed(MouseEvent arg0) {
    		// TODO Auto-generated method stub
     
    	}
    	public void mouseReleased(MouseEvent arg0) {
    		// TODO Auto-generated method stub
     
    	}
     
     
     
    }
    En vous remerciant d'avance.


    P.S. : Merci pour m'avoir fait remarquer l'erreur dans le message

  2. #2
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Bonjour,

    Vous avez mis deux fois le même code...

    Il faudrait le code de la classe FenetrePrincipale étant donné que c'est dans celle-ci qu'est declenchée l'erreur

  3. #3
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut
    salut
    je pense que la classe que t'appel a savoir FenetrePannes ne doit pas contenir de main.
    Il serait préferable de l'appeler dans ton main de FenetrePrincipales en faisant un FenetrePannes fp = new FenetrePannes();

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 6
    Par défaut
    Bonjour,

    L'erreur :
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.AbstractButton.doClick(Unknown Source)
    Est très claire, tu as un problème d'évenement, il ne reconnait pas la source.
    En lisant ton code, je repère quelques lignes qui m'interpelle :

    this._MenuDesPannes = new JMenu("Menu d'injection de pannes");
    this._MenuPannesMontrer = new JMenuItem("Montrer");
    this._MenuPannesCacher = new JMenuItem("Cacher");
    this._MenuExit = new JMenuItem("Fermer");
    ci-dessus, tu crée ton menu et tes items.

    private void listenerMenu()
    {
    this._Menu.addActionListener(this);
    this._MenuPannesMontrer.addActionListener(this);
    this._MenuPannesCacher.addActionListener(this);
    this._MenuExit.addActionListener(this);
    }
    Ci-dessus, tu ajoute un listener sur tes menus

    Et voici la classe qui est la "principale" qui doit appeler la precedente lorsque l'on clique sur "Menu => Menu d'injection de Panne => Montrer"
    Pourtant tu clique sur un item.
    Je pense que l'erreur vient de là. La source du clic est un item qui n'a pas de listener.
    Je te conseille de mettre les listeners sur tes items.

  5. #5
    Membre éprouvé Avatar de sylviadesbois
    Inscrit en
    Mars 2007
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 84
    Par défaut
    je ne suis pas trop d'accord avec javapower mais j'ai tout à fait le droit de me tromper:
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at IHM.FenetrePrincipale.SetVisibleFenetrePanne(FenetrePrincipale.java:111)
    at IHM.FenetrePrincipale.actionPerformed(FenetrePrincipale.java:97)
    ceci te dit qu'à un moment tu appelle quelque chose qui n'a jamais été instancié dans la méthode setVisibleFenetrePAnne de la classe fenetre principale

    j'aurais dit que tu n'as pas instancié _FenetrePanne et que celui ci est =null mais là j'avoue je ne comprends pas trop.

  6. #6
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2
    Par défaut Merci
    Merci a vous tous je suis toujours en train de regler le probleme j'ai peu etre trouvé une solution parrallele mais merci d'avoir put m'epauler sur ce bug

Discussions similaires

  1. Réponses: 4
    Dernier message: 08/02/2010, 08h23
  2. Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException ?
    Par freezerhm dans le forum Concurrence et multi-thread
    Réponses: 5
    Dernier message: 04/12/2007, 09h26
  3. Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    Par Trint dans le forum Interfaces Graphiques en Java
    Réponses: 6
    Dernier message: 27/02/2007, 11h28
  4. Réponses: 8
    Dernier message: 11/05/2006, 19h32
  5. [JDIC]Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    Par kedare dans le forum Concurrence et multi-thread
    Réponses: 4
    Dernier message: 06/05/2006, 22h45

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