3

如何在另一个 Gui 中启动 JADE Gui?假设我的 Gui 上有一个按钮。按下该按钮后,JADE Gui 将启动。

这可能吗?如果是,如何?

提前致谢。

问候

4

1 回答 1

7

我假设 JADE Gui 你的意思是 JADE RMA

由于 RMA 本身就是一个代理,因此显示 RMA gui 只是创建和启动 RMA 代理的问题。

如果您是通过代码执行此操作(即,不是通过命令行或 gui),则必须引用要启动它的容器的容器控制器,并且只需调用createAgent() 方法。

import jade.wrapper.AgentController;
import jade.wrapper.ContainerController;

...

ContainerController myContainer;

// .. load a container into the above variable ..

try {
    AgentController rma = myContainer.createNewAgent("rma", "jade.tools.rma.rma", null);
    rma.start();
} catch(StaleProxyException e) {
    e.printStackTrace();
}

您可以从这样的代码启动主容器

import jade.core.Runtime;
import jade.core.Profile;
import jade.core.ProfileImpl;

...

Runtime myRuntime = Runtime.instance();

// prepare the settings for the platform that we're going to start
Profile myProfile = new ProfileImpl();

// create the main container
myContainer = myRuntime.createMainContainer(myProfile);

或者你可以像这样启动一个普通的代理容器并连接到一个外部容器

import jade.core.Runtime;
import jade.core.Profile;
import jade.core.ProfileImpl;

...

Runtime myRuntime = Runtime.instance();

// prepare the settings for the platform that we're going to connect to
Profile myProfile = new ProfileImpl();
myProfile.setParameter(Profile.MAIN_HOST, "myhost");
myProfile.setParameter(Profile.MAIN_PORT, "1099");

// create the agent container
myContainer = myRuntime.createAgentContainer(myProfile);

参考:与 JADE、Fabio Luigi Bellifemine、Giovanni Caire、Dominic Greenwood 一起开发多代理系统。

于 2013-12-09T03:33:34.880 回答