Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用swing启动Jade代理_Java_Swing_Agents Jade - Fatal编程技术网

Java 使用swing启动Jade代理

Java 使用swing启动Jade代理,java,swing,agents-jade,Java,Swing,Agents Jade,我已经编写了一个数据库更新软件,它允许我部署一个jade移动代理来更新数据库。为了让它运行,我需要使用AMS gui启动它。我希望能够从gui启动它。我现在已经完成了一个漂亮的swing gui,我只需要知道当单击“更新”按钮时允许我启动移动代理的代码。代码是什么?提前感谢。要启动代理或执行与JADE相关的任何操作,您需要使用JADE库和API编写代码,而不管您使用了什么前端(本例中为Swing) 一个建议是,为了保持模块化,创建另一个文件来执行您想要的许多此类操作之一,并让您的Swing GU

我已经编写了一个数据库更新软件,它允许我部署一个jade移动代理来更新数据库。为了让它运行,我需要使用AMS gui启动它。我希望能够从gui启动它。我现在已经完成了一个漂亮的swing gui,我只需要知道当单击“更新”按钮时允许我启动移动代理的代码。代码是什么?提前感谢。

要启动代理或执行与JADE相关的任何操作,您需要使用JADE库和API编写代码,而不管您使用了什么前端(本例中为Swing) 一个建议是,为了保持模块化,创建另一个文件来执行您想要的许多此类操作之一,并让您的Swing GUI与该文件交互(比如通过套接字),从而触发您的操作。 该文件将充当服务器,它将侦听前端并执行相应的工作。但所有命令都要使用jadeapi进行编码。其中一个代码是:

ContainerController cc=Runtime.instance().createAgentContainer(newProfileImpl())

对象参数[]=新对象[1]``参数[0]=新对象()

AgentController-dummy=cc.createNewAgent(“mob2”,“mobiletrial”,参数)


dummy.start()

这是我编写的从一个代理启动另一个代理的方法。您必须编辑它以供多个容器使用

void launchAgent( final String AgentName, final String AgentType)
{
    log(Level.FINER,"attempting to launch angent name: "+AgentName+" type: "+AgentType);
    CreateAgent ca = new CreateAgent();
    ca.setAgentName(AgentName);
    ca.setClassName(AgentType);
    ca.setContainer(new ContainerID(AgentContainer.MAIN_CONTAINER_NAME, null));
    Action actExpr = new Action(this.getAMS(), ca);
    ACLMessage request = new ACLMessage(ACLMessage.REQUEST);
    request.addReceiver(this.getAMS());

    request.setOntology(JADEManagementOntology.getInstance().getName());


    request.setLanguage(FIPANames.ContentLanguage.FIPA_SL);
    request.setProtocol(FIPANames.InteractionProtocol.FIPA_REQUEST);
    try {
        getContentManager().fillContent(request, actExpr);

        addBehaviour(new AchieveREInitiator(this, request) {
            protected void handleInform(ACLMessage inform) {
            log(Level.INFO,"Agent successfully created name:"+AgentName+" type: "+AgentType);
            }

        protected void handleFailure(ACLMessage failure) {
            log(Level.SEVERE,"Agent launch failed name: "+AgentName+" type: "+AgentType);
            }
            } );
        }
    catch (Exception e) {
        e.printStackTrace();
        }
}

我过去所做的是创建一个“协调代理”,用于启动其他代理。协调器通常通过bools(而不是套接字)使用swing和接口访问。