Accueil > Forum > > > > problème d'action sur un bouton
problème d'action sur un bouton
vendredi 15 février 2008 à 22:09:05 |
problème d'action sur un bouton

crazysetup
|
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é :
|
|
vendredi 15 février 2008 à 22:14:11 |
Voici mon code

crazysetup
|
Voivi mon code :
import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.FileWriter; import java.io.IOException;
import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField;
public class saisie_equipe {
protected JFrame saisie; protected JPanel titre; protected JPanel saisir; protected JPanel actions; protected JLabel title; protected JLabel name; protected JLabel date; protected JLabel president; protected JLabel nation; protected JLabel status; protected JLabel league; protected JLabel players; protected JTextField Name; protected JTextField Date; protected JTextField President; protected JTextField Nation; protected JTextField Status; protected JTextField League; protected JButton Players; protected JButton Valider; protected JButton Annuler; public saisie_equipe() { 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) { add_team(); } }); JButton Annuler = new JButton ("Annuler"); titre.add(title); saisir.setLayout(new GridLayout(7,3)); saisir.add(name); saisir.add(new JLabel("")); saisir.add(Name); saisir.add(date); saisir.add(new JLabel("")); saisir.add(Date); saisir.add(president); saisir.add(new JLabel("")); saisir.add(President); saisir.add(nation); saisir.add(new JLabel("")); saisir.add(Nation); saisir.add(status); saisir.add(new JLabel("")); saisir.add(Status); saisir.add(league); saisir.add(new JLabel("")); saisir.add(League); saisir.add(players); saisir.add(new JLabel("")); saisir.add(Players); actions.setLayout(new GridLayout(1,4)); actions.add(Valider); actions.add(new JLabel("")); actions.add(Annuler); actions.add(new JLabel("")); saisie.setLayout(new BorderLayout()); saisie.add(titre,BorderLayout.NORTH); saisie.add(saisir,BorderLayout.CENTER); saisie.add(actions,BorderLayout.SOUTH); saisie.setSize(700, 400); saisie.setVisible(true); } public void add_team() {
FileWriter writer = null ; String texte = Name.getUIClassID(); try{ writer = new FileWriter("d:/applifoot/fichier.txt", true); writer.write(texte,0,texte.length()); }catch(IOException ex){ ex.printStackTrace(); }finally{ if(writer != null){ try { writer.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } }
je pense quue le problème vient de la méthode write de l'objet writer instancié dans la méthode add_team()
Je suis bloqué dans mon travail et j'aimerais que vous m'aidiez Merci d'avance.
|
|
samedi 16 février 2008 à 10:58:28 |
Re : problème d'action sur un bouton

DARKSIDIOUS
|
Salut, Et quel est le problème au juste ? La méthode n'est pas appelée ? Il y a une erreur affichée ? ______________________________________ DarK Sidious
|
|
samedi 16 février 2008 à 17:31:04 |
Re : problème d'action sur un bouton

tenev911
|
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 :)
|
|
samedi 16 février 2008 à 20:27:46 |
Re : problème d'action sur un bouton

crazysetup
|
Oui mais il faut que la création du fichier soit dans un bloc try catch aussi. Du coup ca ne marche toujours pas. Voici ma méthode modifiée :
public void add_team() {
FileWriter writer=null ; File fichier = new File("d:/applifoot/fichier.txt"); String texte = Name.getUIClassID(); if(fichier.exists()) try{ writer = new FileWriter(fichier, true); writer.write(texte,0,texte.length()); }catch(IOException ex){ ex.printStackTrace(); }finally{ if(writer != null){ try { writer.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
Et voici l'erreur générée :
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
|
|
dimanche 17 février 2008 à 04:13:04 |
Re : problème d'action sur un bouton

tenev911
|
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 ^^
|
|
dimanche 17 février 2008 à 16:37:28 |
Problème résolu

crazysetup
|
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"); String texte1 = Name.getText(); String texte2 = Date.getText(); String texte3 = President.getText(); String texte4 = Nation.getText(); String texte5 = Status.getText(); String texte6 = League.getText(); String space = " : "; String ret = "\r\n"; String text1=name.getText(); String text2 = date.getText(); String text3 = president.getText(); String text4 = nation.getText(); String text5 = status.getText(); String text6 = league.getText(); if(fichier.exists()) { fichier.delete(); 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); }catch(IOException ex){ ex.printStackTrace(); }finally{ if(writer != null){ try { writer.close(); } catch (IOException e) { e.printStackTrace(); } } } } else { File fich = new File("d:/applifoot/"+Name.getText()+".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); }catch(IOException ex){ ex.printStackTrace(); }finally{ if(writer != null){ try { writer.close(); } catch (IOException e) { e.printStackTrace(); } } } } } });
merci encore !
|
|
dimanche 17 février 2008 à 16:41:17 |
mettre un fichier dans un repertoire

crazysetup
|
Maintenant j'ai un petit souci :
Comment créer un fichier et le placer à l'intérieur d'un répertoire créé avec mkdirs();
|
|
Cette discussion est classée dans : bouton, problème, action, classe, valider
Répondre à ce message
Sujets en rapport avec ce message
action bouton [ par Nayra ]
bonsoir,je vais introduire avec ça:vous connaissez bien sur l'atelier Starumlil y a la palette des composants(classe, paquetage, généralisation....)po
problèmes en java [ par hibaw ]
bonjour,mon 1ier problème est : comment je peut déclarée une méthode qui à comme paramètres d'entrées une matrice et un String, j'ai déclarée comme se
menu bar en java [ par emna10 ]
Bonjour!je rencontre un probleme au niveau de la manipulation du menu dans mon application(en java):j'ai creer une classe menu qui construit le menu (
label avec image [ par malbackt ]
Bonjour à tous;Je vous remercie tout d'abord pour l'aide que vous allez m'apporter si c'est possible.Je vous présente mon problème, j'ai dans un JAppl
J2ME - Loading... [ par plop3000 ]
Bonjour,Je travaille actuellement sur un projet en J2ME, pour lequel j'ai un écran d'authentification (un Form) de type :Login : textfieldMot de passe
jsf [ par limalima ]
Bonjour à tous, voila , mon problème est le suivant: j'ai un bouton dont l'action appelle une méthode qui elle même appelle une autre méthode, et le p
problème en java [ par hibaw ]
Bonjour,j'ai une variable commun entre mes classes java, où chaque classe utilise la valeur actualisé de la variable ( en excécution), ça me pose aucu
problème avec joptionPane.showInputDialog() [ par curieuse9informatique ]
bonsoir à tous et à toute.[^^happy13] SVP mon problème est le suivant:[^^happy17] j'ai un bouton [b]CréerCompte[/b][color=purple][/color] dans une [b]
récupération de champDeTexte.getText() [ par lalaing ]
Bonjour; j'ai un problème dans la récupération de champDeTexte.getText(); qui est dans une classe x au je veut lorsque cliquer sur ok jComboBox1.addI
Livres en rapport
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|