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

Programmation par agent Java Discussion :

Lancer un agent dans la plateforme jade via une interface graphique


Sujet :

Programmation par agent Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2014
    Messages : 131
    Par défaut Lancer un agent dans la plateforme jade via une interface graphique
    Salut,

    SVP quelqu'un peut m'aider? ,je veux lancer un agent dans la plateforme jade via une classe qui extends un jframe , j'ai travaillée avec ça et marche nickel ,mais l'utilisation de la partie graphique est un peu pénible car j'avais pas accès aux différents composants graphique via la palette de netbeans puisque j'utilise une classe qui extends un agent et fait appel à une méthode qui retourne un jframe ,mais le but maintenant je veux que les choses marchent inversement, bref j'ai essayée avec ce code mais enfaîte lorsque je veux exploiter l'objet agent instancié de la classe agent1 au niveau de ma classe qui extends un jframe le compilateur déclenche cette erreur :
    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
    java.lang.IllegalAccessException: Class jade.core.management.AgentManagementService$CommandTargetSink can not access a member of class test_fuzzylogic.agent1 with modifiers ""
    	at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:95)
    	at java.lang.Class.newInstance0(Class.java:366)
    	at java.lang.Class.newInstance(Class.java:325)
    	at jade.core.management.AgentManagementService$CommandTargetSink.createAgent(AgentManagementService.java:612)
    	at jade.core.management.AgentManagementService$CommandTargetSink.handleRequestCreate(AgentManagementService.java:533)
    	at jade.core.management.AgentManagementService$CommandTargetSink.consume(AgentManagementService.java:488)
    	at jade.core.CommandProcessor$SinksFilter.accept(CommandProcessor.java:253)
    	at jade.core.Filter.filter(Filter.java:89)
    	at jade.core.Filter.filter(Filter.java:90)
    	at jade.core.Filter.filter(Filter.java:90)
    	at jade.core.CommandProcessor.processIncoming(CommandProcessor.java:229)
    	at jade.core.BaseNode.serveVerticalCommand(BaseNode.java:163)
    	at jade.core.BaseNode.serveHorizontalCommand(BaseNode.java:111)
    	at jade.imtp.leap.NodeLEAP.accept(NodeLEAP.java:60)
    	at jade.core.management.AgentManagementProxy.createAgent(AgentManagementProxy.java:67)
    	at jade.core.AgentContainerImpl$1.createAgent(AgentContainerImpl.java:174)
    	at jade.wrapper.ContainerController.createNewAgent(ContainerController.java:135)
    	at test_fuzzylogic.agent1.<init>(agent1.java:33)
    	at test_fuzzylogic.Frame.<init>(Frame.java:37)
    	at test_fuzzylogic.Frame$2.run(Frame.java:151)
    	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:721)
    	at java.awt.EventQueue.access$200(EventQueue.java:103)
    	at java.awt.EventQueue$3.run(EventQueue.java:682)
    	at java.awt.EventQueue$3.run(EventQueue.java:680)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:691)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)
    ) ,donc est ce qu' il existe un moyen pour résoudre mon problème.

    Voici le code de la classe agent1.
    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
     
    public class agent1 extends Agent {
     
             agent1(){
     
           jade.core.Runtime runtime = jade.core.Runtime.instance();
                        ProfileImpl profileImpl = new ProfileImpl(false);
                        profileImpl.setParameter(ProfileImpl.MAIN_HOST, "localhost");
                        jade.wrapper.AgentContainer agentContainer = runtime.createAgentContainer(profileImpl);
                         AgentController agentController;
     
                 try {
                     agentController = agentContainer.createNewAgent("Agent1","test.agent1", null); // ici le programme se bloque
                      agentController.start();
                 } catch (Exception e) {
                  e.printStackTrace();
                 }
     
    }         
    }
    le code de la classe jframe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public class Frame extends javax.swing.JFrame{
      agent1 a=new agent1();
     
        public Frame()  {
            initComponents();
     
                   System.out.println("My Name is " + a.getAID().getName());
     
     
        }
    }
    Merci d'avance.

  2. #2
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 65
    Par défaut
    Citation Envoyé par samarqand Voir le message


    Voici le code de la classe agent1.
    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
     
    public class agent1 extends Agent {
     
             agent1(){
     
           jade.core.Runtime runtime = jade.core.Runtime.instance();
                        ProfileImpl profileImpl = new ProfileImpl(false);
                        profileImpl.setParameter(ProfileImpl.MAIN_HOST, "localhost");
                        jade.wrapper.AgentContainer agentContainer = runtime.createAgentContainer(profileImpl);
                         AgentController agentController;
     
                 try {
                     agentController = agentContainer.createNewAgent("Agent1","test.agent1", null); // ici le programme se bloque
                      agentController.start();
                 } catch (Exception e) {
                  e.printStackTrace();
                 }
     
    }         
    }
    j'ai pas compris votre question, mais y a une chose dans votre code, normalement vous ne pouvez pas écrire ces instruction à l’intérieur de la classe agent, ça vous dire que vous créez un conteneur dans le corps de la classe agent!!!! mais ça pour faire quoi? si vous voulez écrire un conteneur qui contient votre agent, vous devez faire ceci : par exemple créer un jframe de tel façon que lorsque vous clic sur un bouton votre agent va être créer, et tapez ce code dans l’événement de ce bouton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Runtime rt = Runtime.instance();
     
                ProfileImpl p=new ProfileImpl(, false);
     
                AgentContainer container =rt.createAgentContainer(p);
                AgentController Agent=null;
                Agent = container.createNewAgent("id de lagent ", "package de l'agent.class de l'Agent", argument[] ou null);
     
                Agent.start();

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 65
    Par défaut
    Citation Envoyé par samarqand Voir le message
    Salut,

    j'ai travaillée avec ça et marche nickel ,mais l'utilisation de la partie graphique est un peu pénible car j'avais pas accès aux différents composants graphique via la palette de netbeans puisque j'utilise une
    vous pouvez faire ça facilement avec netbeans, il faut juste modifier quelques choses, dans la partie design sélectionner votre composant puis aller sur propriété
    -> code puis variable modifiers puis sélectionner static et changer Access a public et c'est tu
    Nom : Capture.PNG
Affichages : 3090
Taille : 17,4 KoNom : Capture1.PNG
Affichages : 3007
Taille : 24,0 Ko

  4. #4
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2014
    Messages : 131
    Par défaut
    Salut Imene MI et merci pour l'aide;
    mais enfaîte mon problème c’était pas ça,car j'ai testé auparavant la création d'un jframe et de lancer un agent via son constructeur c.à.d au lancement de la fenêtre ou bien même comme vous avez dit d'utiliser un bouton et de mettre le code qui crée le conteneur du l'agent à l’intérieur.
    normalement vous ne pouvez pas écrire ces instruction à l’intérieur de la classe agent, ça vous dire que vous créez un conteneur dans le corps de la classe agent!!!! mais ça pour faire quoi?
    Et pour quoi j'ai mis ce code dans le constructeur de la classe agent car je voulais voir comme étant un objet qui se comporte comme un agent on peut l'instancier mais il a des méthodes de communication que je spécifie son code moi même en plus des méthodes qu'il hérite de la classe mère Agent du JAVA, vous pouvez m'dire que c'était possible de faire ceci sans placer le code qui crée le conteneur et je dis oui mais j'ai proposé de faire ça car lorsque j'ai mis cette instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Agent = container.createNewAgent("id agent","nom du package.nom de la classe", null);
    au niveau de la classe jframe, j'avais juste cette possibilité d’appeler la méthode "start()" et lorsque je voulez faire une communication au niveau de la classe jframe, je serai obligé de mettre le tout dans la méthode setup()de la classe agent (peut être en utilisant comme type de communication un automate) dont il sera très compliqué de gérer tout les communications à l’intérieur de cette dernière surtout quand j'ai besoin une communication bien précis via la fenêtre de la classe jframe.
    désolé j'ai trop parlé et j’espère que ma réponse est bien claire. donc si vous avez une vue via un autre angle elle sera la bienvenue pour l'esprit d'entraide .

  5. #5
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2014
    Messages : 131
    Par défaut
    Citation Envoyé par Imene MI Voir le message
    vous pouvez faire ça facilement avec netbeans, il faut juste modifier quelques choses, dans la partie design sélectionner votre composant puis aller sur propriété
    -> code puis variable modifiers puis sélectionner static et changer Access a public et c'est tu
    Nom : Capture.PNG
Affichages : 3090
Taille : 17,4 KoNom : Capture1.PNG
Affichages : 3007
Taille : 24,0 Ko
    et pour ça je voulez dire j'ai pas accès aux composant graphique car j'avais pas la possibilité de manipuler directement un composant comme l'ajout d'un événement ou bien modifier l'un de ses paramètres via la palette comme dans cet exemple qui marche très bien et que je l'utilise pour l'instant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public class Frame_Agent extends Agent {
    .................................
    ..........................
     protected void setup() {
      JFrame f = creer_interface_Agent();
    ..........................
    }
     public JFrame creer_interface_Agent1() {
    //la description de la fenêtre 
    ........................
    ......................
    }
    }
    on voit bien que j'ai pas accès aux composants graphique de la fenêtre via l’anglet design du Netbeans.
    Bien cordialement.

  6. #6
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 65
    Par défaut
    j'ai pas bien compris votre problème je suis vraiment désolé, mais si vous voulez faire la relation entre l'agent et l'interface graphique vous pouvez voir cet exemple
    Exemple JAde.rar vous pouvez même faire le lien entre l'agent et plusieurs interfaces à la foi.

  7. #7
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 65
    Par défaut
    pouvez vous me donner un exemple sur ce que vous voulez faire comme communication entre l'agent et l'interface ?

  8. #8
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2014
    Messages : 131
    Par défaut
    Salut;
    je viens de tester le projet ExmpleJAde mais j'ai un problème au niveau de la classe ExmpleJAde plus précisément dans cette instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Boot b = new Boot(args);
    j'ai essayé de créer une nouvelle configuration sous netbeans mais sa marche pas c.à.d aucune interface d'agent ne se lance. S.V.P comment vous venez de les lancer ?.
    merci d'avance

  9. #9
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 65
    Par défaut
    Citation Envoyé par samarqand Voir le message
    Salut;
    je viens de tester le projet ExmpleJAde mais j'ai un problème au niveau de la classe ExmpleJAde plus précisément dans cette instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Boot b = new Boot(args);
    j'ai essayé de créer une nouvelle configuration sous netbeans mais sa marche pas c.à.d aucune interface d'agent ne se lance. S.V.P comment vous venez de les lancer ?.
    merci d'avance
    clic sur run le projet (sans lancer jade ), et n'oublier pas d'ajouter les fichier .jare du jade Nom : Capture.PNG
Affichages : 2364
Taille : 11,3 Ko

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/02/2011, 18h15
  2. Réponses: 1
    Dernier message: 04/08/2010, 08h22
  3. Réponses: 1
    Dernier message: 15/11/2009, 16h46
  4. Adminsitration d'un serveur via une interface graphique
    Par onet dans le forum Administration système
    Réponses: 4
    Dernier message: 11/11/2008, 00h03
  5. Définition des variable dans un fichier.m d'une interface graphique
    Par developpeur82 dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 10/05/2007, 14h53

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