如何在另一个 Gui 中启动 JADE Gui?假设我的 Gui 上有一个按钮。按下该按钮后,JADE Gui 将启动。
这可能吗?如果是,如何?
提前致谢。
问候
如何在另一个 Gui 中启动 JADE Gui?假设我的 Gui 上有一个按钮。按下该按钮后,JADE Gui 将启动。
这可能吗?如果是,如何?
提前致谢。
问候
我假设 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 一起开发多代理系统。