使用JADE和Excel的问题 我正在与JADE合作,我希望代理在am excel文件中写入一些信息。调试时收到错误的代码有什么问题:java.lang.IndexOutOfBoundsException:Index:0,Size:0在MASTER1.write()行它有什么问题
以下是代码:使用JADE和Excel的问题 我正在与JADE合作,我希望代理在am excel文件中写入一些信息。调试时收到错误的代码有什么问题:java.lang.IndexOutOfBoundsException:Index:0,Size:0在MASTER1.write()行它有什么问题,java,excel,multithreading,agents-jade,Java,Excel,Multithreading,Agents Jade,以下是代码: public class TryBehaviours extends Agent { @Override protected void setup(){ System.out.println("Agent" + this.getLocalName() + " Says: Hellowww" ); addBehaviour(new DataStore(this)); } public class DataStore extends OneShotBehaviou
public class TryBehaviours extends Agent {
@Override
protected void setup(){
System.out.println("Agent" + this.getLocalName() + " Says: Hellowww" );
addBehaviour(new DataStore(this));
}
public class DataStore extends OneShotBehaviour{
public DataStore(Agent a) {
super(a);
}
@Override
public void action() {
try {
File f;
f = new File ("C:\\Users\\MR\\Desktop\\MyDatabase.xls");
WritableWorkbook MASTER1 = Workbook.createWorkbook(f);//MASTER is the name of our database
WritableSheet History_Table = MASTER1.createSheet("History_Table", 0);//names the first sheet as History_Table
MASTER1 = Workbook.createWorkbook(f);//makes the Database.xlx writable
Label L00 = new Label (0,0,"RUN#");
History_Table.addCell(L00);
MASTER1.write();
System.out.println("finished...");
MASTER1.close();
}
catch (WriteException | IOException ex) {
Logger.getLogger(TryBehaviours.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
这是我的入门课:
public class Starter extends Agent {
//int members = 50;
String[] name = new String[10];
AID[] AIDlist = new AID[10];
@Override
protected void setup() {
for (int i = 0; i < name.length; i++) {
name[i] = "Agent" + (i + 1);
AIDlist[i] = new AID(name[i], AID.ISLOCALNAME);
}
AgentContainer c = getContainerController();
AgentController[] a = new AgentController[10];
for (int j = 0; j < a.length; j++) {
try {
a[j] = c.createNewAgent(name[j], "TryBehaviours", null);
a[j].start();
System.out.println(" Created: " + AIDlist[j]);
} catch (Exception e) {
}
}
公共类启动器扩展代理{
//国际成员=50;
字符串[]名称=新字符串[10];
AID[]AIDlist=新的AID[10];
@凌驾
受保护的无效设置(){
for(int i=0;i
}
}
a[j]=c.createNewAgent(名称[j],“TryBehaviours”,null)行代码>我收到与以下内容相关的错误:
@凌驾
公开募捐{
如果(目标!=null){
target.run();
}
}
我的代码怎么了。。这个Starter类对于其他类很有效,但是对于这个类,它会导致问题和错误我相信问题与您使用
MASTER1.write()调用的方法有关代码>。
您可能需要为工作簿指定一个要写入的输出文件。首先,为什么要调用workbook.createWorkbook(f)
两次?是的,这是由于太粗心造成的一个大错误,我删除了那一行,但类Starter仍然存在问题。当我在Starter中使用此代码时,它工作并且代理Alice在单元格(0,0)中写入Run#:String name=“Alice”;AgentContainer c=getContainerController();请尝试{AgentController a=c.createNewAgent(名称,“TryBehaviours”,null);a.start();}catch(异常e){}
,但我希望创建多个代理并在excel中编写。。。。你能帮我吗@索芬迪对杰德一点也不熟悉。这就是说,经验法则是:1)从简单有效的东西开始,2)逐步尝试添加通向您想要的功能的步骤,看看它在哪里中断(可能使用自动测试方法),以及3)RTFM。为了以后的参考,我只想指出,这与JADE没有任何关系,这只是一个Java问题。