Exception in thread "AWT-EventQueue-0" java.lang.NullPointerExce
Limaaa
Messages postés
2
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
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
- Aux in ✓ - Forum Enceintes / HiFi
- Navigation in private - Guide
- Dc in - Forum Disque dur / SSD
- Peut-on brancher un casque sur une prise auxiliaire ? - Forum Casque et écouteurs
- Girl in the basement streaming vf - Forum Cinéma / Télé
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()...