Exception in thread "AWT-EventQueue-0" java.lang.NullPointerExce
Limaaa
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Bonjour,
je suis débutante en java et je travaille sous Linux et à chaque fois que j'essaie d'exécuter un programme sur lequel je bosse j'ai une erreur
"Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at application.Application$4.mouseClicked(Application.java:159)
at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:270)"
J'ai fais de mon possible mais je ne sais pas vraiment comment faire pour le résoudre.
Merci d'avance.
Voici ma classe
EDIT: Ajout de la coloration syntaxique.
Bonjour,
je suis débutante en java et je travaille sous Linux et à chaque fois que j'essaie d'exécuter un programme sur lequel je bosse j'ai une erreur
"Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at application.Application$4.mouseClicked(Application.java:159)
at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:270)"
J'ai fais de mon possible mais je ne sais pas vraiment comment faire pour le résoudre.
Merci d'avance.
Voici ma classe
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package application; import chargementDynamique.Repository; import interfaces.InterfacePlugin; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.List; import java.util.Properties; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTree; import javax.swing.tree.DefaultMutableTreeNode; public class Application extends JFrame { private JPanel global,gauche,droit; private JScrollPane scrolldroit,scrollgauche; private JMenuBar menu; private JMenu fichier,plugins; private JMenuItem save,load,quitter; private List<Class<?>> l; private List<InterfacePlugin> listePlugins; private File distinationFile; private Repertory repertoire; private GenereTree arbre; private Dimension d; public Application() throws InstantiationException, IllegalAccessException { d = Toolkit.getDefaultToolkit().getScreenSize(); distinationFile = new File("/home/deptinfo/Bureau/poo/App/build/classes"); listePlugins = new ArrayList<InterfacePlugin>(); this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); this.setBounds(0,0,d.width,d.height-40); menu = new JMenuBar(); fichier = new JMenu("fichier"); save = new JMenuItem("save"); save.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { arbre.saveTree(); } }); load = new JMenuItem("importer"); load.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if(arbre.getSavinFile().exists()) { arbre = arbre.loadTree(); } else JOptionPane.showMessageDialog(null, "il n'ya pas de fichier de sauvegarde !!"); scrollgauche.getViewport().remove(arbre); scrollgauche.getViewport().add(arbre); scrollgauche.getViewport().validate(); } }); quitter = new JMenuItem("Quitter"); fichier.add(save); fichier.add(load); fichier.add(quitter); plugins = new JMenu("plugins"); Repository<Object> rep = new Repository<Object>(distinationFile,Object.class); l = rep.load(); for(Class<?> c :l) { Class<?>[] interfaces = c.getInterfaces(); for(Class<?> uneinterface :interfaces) { if (c.getName().equals("interfaces.InterfacePlugin")) { InterfacePlugin plugin = (InterfacePlugin) c.newInstance(); listePlugins.add(plugin); buildMenu(plugin); } } } menu.add(fichier); menu.add(plugins); this.setJMenuBar(menu); global = new JPanel(); global.setLayout(new BorderLayout()); repertoire = new Repertory(); // faut mettre la classe qui genere le JTree // exemple tree = new ClasseGenereTree(); arbre = new GenereTree(); /*DefaultMutableTreeNode node = new DefaultMutableTreeNode(new File("C:/")); DefaultTreeModel model = new DefaultTreeModel(node);*/ //tree.setModel(model); ///arbre.setModel(model); addListenerToTree(arbre,repertoire); droit = repertoire.createRepertory(new File("../"), listePlugins); scrolldroit = new JScrollPane(droit); global.add(scrolldroit, BorderLayout.CENTER); //le panel pour la liste des repertoires de gauche scrollgauche = new JScrollPane(); scrollgauche.getViewport().setPreferredSize(new Dimension(200, 600)); scrollgauche.getViewport().add(arbre); global.add(scrollgauche,BorderLayout.WEST); this.setContentPane(global); } private void buildMenu(final InterfacePlugin c) { JMenuItem item = new JMenuItem(c.getName()); item.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(null, c.getDetail()); } }); plugins.add(item); } public void addListenerToTree(final JTree arb, Repertory r) { arb.addMouseListener(new MouseListener() { @Override public void mouseClicked(MouseEvent e) { droit = repertoire.createRepertory((File)((DefaultMutableTreeNode)arb.getLastSelectedPathComponent()).getUserObject(), listePlugins); } @Override public void mousePressed(MouseEvent e) { } @Override public void mouseReleased(MouseEvent e) { } @Override public void mouseEntered(MouseEvent e) { } @Override public void mouseExited(MouseEvent e) { } }); }
EDIT: Ajout de la coloration syntaxique.
A voir également:
- Exception in thread "AWT-EventQueue-0" java.lang.NullPointerExce
- Navigation in private - Guide
- Aux in ✓ - Forum Enceintes / HiFi
- Peut-on brancher un casque sur une prise auxiliaire ? - Forum Casque et écouteurs
- Acpi\int33a0\0 ✓ - Forum Pilotes (drivers)
- Dc in - Forum Disque dur / SSD
1 réponse
Bonjour,
L'un des objets qui appelle une méthode sur cette ligne vaut null :
Il faudrait y aller par étape pour savoir où est le null. Donc soit
L'un des objets qui appelle une méthode sur cette ligne vaut null :
droit = repertoire.createRepertory((File)((DefaultMutableTreeNode)arb.getLastSelectedPathComponent()).getUserObject(), listePlugins);
Il faudrait y aller par étape pour savoir où est le null. Donc soit
repertoire, soit
arb, soit
arb.getLastSelectedPathComponent()...