IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Java Discussion :

[Import] ActionListener non compris?


Sujet :

Java

  1. #1
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut [Import] ActionListener non compris?
    Bonjour,

    Je suis à réaliser ma première interface graphique pour une application Java et j'avoue que j'ai beaucoup de mal
    J'ai tenté de trouver des sources sur le net et dans la faq et dans les tuto mais... trop de choses... Je m'y perds comme un rien >.<

    Je me suis peut être trompée de sous forum et si cela s'avérait être le cas j'en suis désolée

    Voici mon problème. Lorsque j'arrive à la ligne de procédure évènementielle sur le bouton, j'ai une erreur qui apparait... NetBeans souhaiterait que j'intègre ce package à ma classe... Sauf que normalement elle devrait être déjà incluse >.>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import java.awt.event.ActionListener; // pour moi, déjà importée via 
    import java.awt.*;
    Je voulais savoir que faire...
    L'erreur donnée est la suivante :
    D:\Scolarite\STS2\AP\AP4_Objet\NutriCal\src\nutrical\Application.java:20: cannot find symbol
    symbol : class ActionListener
    location: class nutrical.Application
    new ActionListener(){
    1 error
    Voici le code de mon interface.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    package nutrical;
    import javax.swing.*;
    import java.awt.*;
    import java.util.*;
     
    public class Application {
        public static void main(String args[]){
            final ArrayList<Aliment> desAliments = new ArrayList<Aliment>();
            final ArrayList<Plat> desPlats = new ArrayList<Plat>();
            final ArrayList<Constituer> desConstitutions = new ArrayList<Constituer>();
            final ArrayList<Repas> desRepas = new ArrayList<Repas>();
            final ArrayList<Personne> desPersonnes = new ArrayList<Personne>();
     
            final JTextField nomPersonne = new JTextField("un nom");
            final JFormattedTextField encorUnTexte = new JFormattedTextField(0);
            final JTextArea unListeDOption = new JTextArea();
     
            JButton boutonEnregistrer = new JButton("Enregistrer");
            boutonEnregistrer.addActionListener(
                new ActionListener(){
                    public void actionPerformed(ActionEvent event){
                        String premierTexte = unTexteQuelconque.getText();
                        //methode
                        desPersonnes.add(new Personne(premierTexte));
                    }
                }
            );
            //Instanciation Fenêtre Windows
            JFrame maFenetre = new JFrame();
            Container panel = maFenetre.getContentPane();
            //Création du panel en question
            panel.setLayout(new java.awt.GridLayout(2,2,1,1));
            //Ajout des composants
            panel.add(new JLabel("Nom Personne :"));
            panel.add(nomPersonne);
            panel.add(new JLabel("Enregistrer"));
            panel.add(boutonEnregistrer);
     
            //Calcul de la taille nécessaire
            maFenetre.pack();
            //Libération mémoire lors de la fermeture de la fenêtre
            maFenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            //Affiche fenêtre
            maFenetre.setVisible(true);    
        }
    }
    Autre question, qui risque de vous hérisser les cheveux sur la tête... Mais j'aurais voulu savoir si ma classe Main que j'utilisais avant l'interface devient cette classe Application... Si je devais placer son code à l'intérieur ou non...

    Ce n'est pas très clair désolée
    J'avais une classe Main dans laquelle j'instanciais mes objets et les sérialisais... J'ai rajouté une classe Application pour faire l'interface graphique dont le code est donné ci-dessus.
    Dois-je incorporer le code de l'une dans l'autre? Si non, comment le programme saura où démarrer ? Démarrer à partir de Main ou Application?

    Merci à vous *o*
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  2. #2
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    LA classe ActionListener est située dans java.awt.event. Si je ne dis pas de bêtise quand tu fais import java.awt tu n'importe pas tous les sous packages.

    Pour ce qui est de l'organisation de tes classes tu pourrais avoir 2 classes différentes : une pour l'IHM et une pour les traitements de serialisation. Tu devras décider laquelle est la "chef". Celle ci aura la méthode main et aura comme attribut un objet du type de ton autre classe qu'elle instantiera.

    En espérant t'aider.

  3. #3
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut
    Hum.
    Que je choisisse?
    J'ai donc le choix? Ne suis je pas obligée de faire de façons à ce que l'interface soit prioritaire?
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  4. #4
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Je pense que tu as le choix même si ça doit être plus facile que l'IHM aie la main.

  5. #5
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut
    Pour voir si j'ai bien comprit...

    Remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    package nutrical;
     
    import java.util.ArrayList;
    import java.io.*;
     
    public class Main{
     
                public static void main(String[] args) throws IOException, ClassNotFoundException {
                            mon traitement;
                }
    }
    Par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    package nutrical;
     
    import java.util.ArrayList;
    import java.io.*;
     
    public class Instanciation{
     
                public Instanciation() throws IOException, ClassNotFoundException {
                            mon traitement;
                }
    }
    et dans mon interface je serais donc à mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    package nutrical;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
     
    public class Application {
        public static void main(String args[]){
            Instanciation inst = new Instantiation();
            mon code d'interface;
        }
    }
    Est ce bien ça?
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  6. #6
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    C'est le principe. Je ne sais pas ce que tu as dans ton traitement mais si tu veux par exemple le lancer au moment du click sur un bouton je te recommande de le mettre dans une méthode et d'appeler cette méthode au moment du click (il n'est jamais très bon de tout coder dans la même méthode).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    package nutrical;
     
    import java.util.ArrayList;
    import java.io.*;
     
    public class Instanciation{
     
                public Instanciation() throws IOException, ClassNotFoundException {
                            initialisation si necessaire sinon méthode vide
                }
     
                public void traitement()
                {
                         mon traitement;
                }
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    package nutrical;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
     
    public class Application {
        public static void main(String args[]){
            Instanciation inst = new Instantiation();
            mon code d'interface;
            et dabs les méthode d'action tu fais un inst.traitement();
        }
    }

  7. #7
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut
    Le traitement en fait est l'initialisation de mes ArrayList...
    je désérialise mes fichiers en ArrayList...
    Si je le fais depuis une méthode... je n'y aurais pas accès car ce seront des variables locales non?
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  8. #8
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut
    (un aperçut de ce que gérait mon feu main.java)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    package nutrical;
     
    import java.util.ArrayList;
    import java.io.*;
     
    public class Instanciation{
     
                public Instanciation(){}
                public void Traitement() throws IOException, ClassNotFoundException{
                    ArrayList<Aliment> desAliments = new ArrayList<Aliment>();
                    ArrayList<Plat> desPlats = new ArrayList<Plat>();
                    ArrayList<Constituer> desConstitutions = new ArrayList<Constituer>();
                    ArrayList<Repas> desRepas = new ArrayList<Repas>();
                    ArrayList<Personne> desPersonnes = new ArrayList<Personne>();
     
                    IOData io = new IOData("D:/Scolarite/STS2/AP/AP4_Objet/NutriCal/src/nutrical/");
     
                    try {
                        desAliments = io.readDesAliments();
                    } catch (NullPointerException e) {
                        /*Aliment00*/desAliments.add(new Aliment("Batavia",false,25,"Légume"));
                        /*Aliment01*/desAliments.add(new Aliment("Pomme",false,52,"Fruit"));
                        /*Aliment02*/desAliments.add(new Aliment("Pain (baguette)",false,283,"Féculent"));
    (...)
    suit une désérialisation de 4 autres Fichiers
    Il faudrait donc que le code soit lancé au démarrage de l'application...
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  9. #9
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    En fait je ne vois pas quel est l'interet de faire un nterface graphique pour ton code puisque tu veux qu'il soit joué en même temps que le lancement. A quoi va -t -elle servir?

  10. #10
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut
    Heu...
    En fait l'interface graphique sera pour l'utilisateur...
    C'est une application lui permettant de composer des repas déclinés en plats puis aliments...
    Avec la quantité d'aliment je calcule un apport calorique.

    D'où l'interface... Mais je me débrouille comme un manche...

    En fait, il me faudrait récuperer tout mes objets au début (désérialisation), que l'utilisateur fasse son repas... calcule l'apport avec un bouton et que son repas soit sauvegardé... lorsqu'il quitte l'application.
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  11. #11
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Citation Envoyé par Deallyra Voir le message
    Mais je me débrouille comme un manche...
    Faut pas dire ça

    Dans ce cas il faudrait que déjà dans ta classe Instanciation tu es plusieurs méthode : une pour déserialiser, une méthode pour remplir chaque liste, et une pour tout sérialiser. Les objets qui seront utiliser par plusieurs méthode devront être déclaré comme attribut de la classe (et non de méthode comme tu l'a) et seront surement initialisé dans le constructeur. Ensuite au différents "moment" de ton interface (démarrage, clic sur un bouton,...) une de ces méthode sera appelée.

  12. #12
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut
    Ces méthodes de sérialisation/désérialisation sont définies dans une autre classe
    enfin je dois donc déclarer mes ArrayList en temps que propriété de ma classe Instanciation...

    Okay...

    Par contre, mon interface... Je suis censée y accéder comment?
    quand j'exécute mon projet elle "n'apparaît" pas.

    Envoyé par Deallyra Voir le message
    Mais je me débrouille comme un manche...
    Faut pas dire ça
    toujours aussi sûr? T.T
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  13. #13
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut
    Aucune idée du pourquoi du comment...
    Il ne voulait pas m'afficher ma fenêtre mais désormais il le fait

    Je me mets à travailler l'interface.

    Merci de ton aide guigui *o*
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur non compris
    Par Imad_ing dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 26/07/2007, 17h20
  2. [D7] [oracle 9i] un message d'erreur non compris
    Par iam dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/07/2007, 12h32
  3. Bug non compris
    Par Alec6 dans le forum Hibernate
    Réponses: 2
    Dernier message: 05/02/2007, 10h48
  4. Current (bug ou principe non compris ?)
    Par DelphiManiac dans le forum Access
    Réponses: 7
    Dernier message: 10/10/2006, 15h55
  5. [error] depassement de memoire non compris
    Par guns17 dans le forum Langage
    Réponses: 8
    Dernier message: 26/07/2006, 17h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo