cs_crazysetup
Messages postés30Date d'inscriptionmardi 25 septembre 2007StatutMembreDernière intervention 1 février 2010
-
15 févr. 2008 à 22:09
cs_crazysetup
Messages postés30Date d'inscriptionmardi 25 septembre 2007StatutMembreDernière intervention 1 février 2010
-
17 févr. 2008 à 16:41
Bonjour à tous, j'ai un petit problème, j'ai une classe qui me construit une frame dans laquelle ya un JButton "Valider", l'action sur valider est censée appeler une méthode add_team() qui se trouve dans la même classe que le bouton à savoir la classe saisie_equipe.
Et voici le code concerné :
JFrame saisie = new JFrame();
JPanel titre = new JPanel();
JPanel saisir = new JPanel();
JPanel actions = new JPanel();
JLabel title = new JLabel("Saisie");
JLabel name = new JLabel ("Nom du club : ");
JLabel date = new JLabel ("Date de fondation : ");
JLabel president = new JLabel ("Président: ");
JLabel nation = new JLabel ("Nation: ");
JLabel status = new JLabel ("Statut : ");
JLabel league = new JLabel("Ligue : ");
JLabel players = new JLabel("Effectif");
JTextField Name = new JTextField("");
JTextField Date = new JTextField("");
JTextField President = new JTextField("");
JTextField Nation = new JTextField("");
JTextField Status = new JTextField("");
JTextField League = new JTextField("");
JButton Players = new JButton("Saisir les joueurs");
Players.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
new Joueurs();
}
});
JButton Valider = new JButton("Valider");
Valider.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
tenev911
Messages postés23Date d'inscriptionjeudi 21 juillet 2005StatutMembreDernière intervention19 avril 2009 16 févr. 2008 à 17:31
A mon avis, vu le code source, le bouton doit bien appeller add_team() donc il doit y avoir une erreur au niveau de cette méthode, juste pour chipoter, plutot que new FileWriter("d:/applifoot/fichier.txt", true) je te conseille d'utiliser un objet File pour l'emplacement de ton fichier, ton code sera plus portable, de plus File à une methode exists qui permet de savoir si le fichier existe. Donc changer writer = new FileWriter("d:/applifoot/fichier.txt", true); en :
FileWriter write;
File fichier = new File("d:\applifoot\fichier.txt"); // Tiens je viens de voir que c'est peut-etre le sens des slash qui fait ça mais pas sûr
if(fichier.exists())
{
writer = new FileWriter(fichier, true);
...
}
Comme DarkSidious le dit, un peu plus d'info sur l'erreur que tu as pourrai nous aider :)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at saisie_equipe.add_team(saisie_equipe.java:136)
at saisie_equipe$2.actionPerformed(saisie_equipe.java:84)
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.plaf.basic.BasicButtonListener.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.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)
En fait, le sens de mes slash est correct.
Si vous pouviez voir ce qui cloche ca serait sympa. merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
tenev911
Messages postés23Date d'inscriptionjeudi 21 juillet 2005StatutMembreDernière intervention19 avril 2009 17 févr. 2008 à 04:13
Il faudrai que je sache quel est la ligne 136 NullPointerException disant que généralement tu essaye de faire une opération sur quelque chose qui vaut null donc, en règle général, mal initialisé.
En faisant un copié-collé, j'ai essayé de voir sur quelle ligne je tombe, pas de chance elle est vide, mais proche de :
String texte = Name.getUIClassID();
Je ne connais pas cette méthode, mais peut-être que dans certains cas elle renvoi null. Même si cela m'étonnerai car quand on écrit null avec un writer, ca écrit le String "null", je vois pas pourquoi cette ligne buggerai, je suggererai la que la ligne :
writer.write(texte,0,texte.length());
bug, mais le fichier.exists() semblerai indiquer que ce fichier existe, donc je vois pas pourquoi il y aurai cette erreur
Bref, quel est la ligne 136 ?
PS : Si à l'execution, ton code execute ce qu'il y a apres fichier.exists() alors effectivement, je me suis trompé pour les slash ^^
cs_crazysetup
Messages postés30Date d'inscriptionmardi 25 septembre 2007StatutMembreDernière intervention 1 février 2010 17 févr. 2008 à 16:37
Merci tenev, j'ai réussi à résoudre le prolème avec une petite manip : j'ai transféré le contenu du constructeur de saisie_equipe dans une méthode externe à cette classe, puis je l'ai appelée, voici mon code modifié :
JButton Valider = new JButton("Valider");
Valider.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
File fb = new File("d:/applifoot/"+Name.getText());
fb.mkdirs();
FileWriter writer=null ;
File fichier = new File("d:/applifoot"+Name.getText()+"/fiche.txt");
File fich = new File("d:/applifoot"+Name.getText()+"/fiche.txt");
try{
writer = new FileWriter(fich, true);
writer.write("Fiche technique de "+Name.getText()+"\r\n"+"\r\n"+text1+space+texte1+ret+text2+space+texte2+ret+text3+space+texte3+ret+text4+space+texte4+ret+text5+space+texte5+ret+text6+space+texte6);
writer.write("Fiche technique de "+Name.getText()+"\r\n"+"\r\n"+text1+space+texte1+ret+text2+space+texte2+ret+text3+space+texte3+ret+text4+space+texte4+ret+text5+space+texte5+ret+text6+space+texte6);