Erreur dans mon code java
Fermé
khou
Messages postés
14
Date d'inscription
lundi 19 juillet 2004
Statut
Membre
Dernière intervention
22 novembre 2007
-
29 sept. 2007 à 13:51
Posotaz Messages postés 489 Date d'inscription samedi 23 juin 2007 Statut Membre Dernière intervention 19 juin 2011 - 29 sept. 2007 à 17:02
Posotaz Messages postés 489 Date d'inscription samedi 23 juin 2007 Statut Membre Dernière intervention 19 juin 2011 - 29 sept. 2007 à 17:02
A voir également:
- Erreur dans mon code java
- Erreur 0x80070643 - Accueil - Windows
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Code asci - Guide
- Code puk bloqué - Guide
1 réponse
Posotaz
Messages postés
489
Date d'inscription
samedi 23 juin 2007
Statut
Membre
Dernière intervention
19 juin 2011
225
29 sept. 2007 à 17:02
29 sept. 2007 à 17:02
Salut,
Je suppose que tu débutes en Java ?
Plusieurs choses ne vont pas dans ton code. Depuis le début :
Alors là je ne sais pas si tu t'en rends compte mais toujours avec l'erreur d'indentation (position des accolades) tu as placé la méthode amorçe (public void main(String[])) à l'intérieur du constructeur de la JFrame ! Elle doit être au même niveau que le constructeur bien évidemment, pas à l'intérieur.
Voilà Bon courage !
PS : Un nom de classe doit TOUJOURS commencer par une lettre majuscule. Un nom de variable, propriété ou méthode doit commencer par une lettre minuscule (les majuscules sont autorisées à partir du deuxième caractère pour dinstiguer les mots).
Je suppose que tu débutes en Java ?
Plusieurs choses ne vont pas dans ton code. Depuis le début :
add(btnAbonnement, BorderLayout.South); add(btnEmprunt, BorderLayout.South); add(btnGestionlivre, BorderLayout.South);Tu ne peux pas ajouter tes boutons directement à la fenêtre (il faut les ajouter à son contentPane). Remplace ces lignes par ce que tu as fait plus bas :
conteneur.add(btnAbonnement); conteneur.add(btnEmprunt); conteneur.add(btnGestionlivre);Ici, il manque non seulement un nom de variable de type ActionListener mais de plus tu essaies d'instancier une interface
ActionListener=new ActionListener();Je te conseille plutôt de virer cette ligne et faire dans l'entête de ta classe :
public class form1 extends JFrame implements ActionListener {Les instructions suivantes souffrent de quelques problèmes :
btnAbonnement.addActionListener(new ActionListener()) btnEmprunt.addActionListener(new ActionListener())A part le fait qu'il manque des points-virgules et au risque de me répéter, ActionListener est une inferface devant être implémentée par une nouvelle classe qui redéfinira au minimum la méthode actionPerformed(ActionEvent). Dans la mesure où je t'ai conseillé de faire implémenter ActionListener par ta JFrame, fais ceci :
btnAbonnement.addActionListener(this); btnEmprunt.addActionListener(this);Alors ensuite c'est du GRAND n'importe quoi. Si tu indentes ton code tu te rendras compte de l'erreur :
btnGestionLivre.addActionListener(new ActionListener()) { public void actionPerformed(ActionEvent e) { if (e.getSource() == Abonnement) system.out.println(FormulaireAbonnement); if (e.getSource() == Emprunt) system.out.println(FormulaireEmprunt); if (e.getSource() == GestionLivre); } conteneur.add(btnAbonnement); conteneur.add(btnEmprunt); conteneur.add(btnGestionlivre); public static void main(Strings[] args) { new form1().setVisible(true); } }Là aussi il manque un point-virgule mais ce n'est pas le plus choquant. Ton accolade est ouverte et fermée au mauvais endroit. La syntaxe habituelle est :
btnGestionLivre.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (e.getSource() == Abonnement) system.out.println(FormulaireAbonnement); if (e.getSource() == Emprunt) system.out.println(FormulaireEmprunt); if (e.getSource() == GestionLivre); }); conteneur.add(btnAbonnement); conteneur.add(btnEmprunt); conteneur.add(btnGestionlivre); ...Dans ce même code, d'où te viennent les variables Abonnement, Emprunt et GestionLivre ? Elles ne sont pas déclarées, la source d'un ActionEvent est le nom de la variable du bouton. Dans ce cas je comprends mal pourquoi tu définis ton ActionListener global dans un bouton. Crée une méthode séparée puisqu'on vient d'implémenter l'interface ActionListener dans la JFrame :
btnGestionLivre.addActionListener(this); ... } //Fin du constructeur public void actionPerformed(ActionEvent e) { if (e.getSource() == btnAbonnementt) system.out.println("Action sur Formulaire Abonnement"); if (e.getSource() == btnEmprunt) system.out.println("Action sur Formulaire Emprunt"); if (e.getSource() == btnGestionLivre) system.out.println("Action sur Formulaire Gestion Livre"); }Dans tes system.out tu as indiqué aussi deux variables qui ne sont pas définies. Et dans la troisième condition tu n'as pas mis pas d'instruction.
Alors là je ne sais pas si tu t'en rends compte mais toujours avec l'erreur d'indentation (position des accolades) tu as placé la méthode amorçe (public void main(String[])) à l'intérieur du constructeur de la JFrame ! Elle doit être au même niveau que le constructeur bien évidemment, pas à l'intérieur.
Voilà Bon courage !
PS : Un nom de classe doit TOUJOURS commencer par une lettre majuscule. Un nom de variable, propriété ou méthode doit commencer par une lettre minuscule (les majuscules sont autorisées à partir du deuxième caractère pour dinstiguer les mots).