Проблемы с использованием JADE и Excel - PullRequest
0 голосов
/ 17 ноября 2018
  1. Я работаю с JADE и хочу, чтобы агенты записали некоторую информацию в файл Excel.что не так с моим кодом, что при отладке я получаю сообщение об ошибке: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 в строке MASTER1.write(); что с ним не так? ..

вот код:

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) {
        }
    }

}}

также в строке a[j] = c.createNewAgent(name[j], "TryBehaviours", null); я получаю сообщение об ошибке:

@ Переопределить public void run () {if (target! = Null) {target.run ();}}

что не так с моим кодом?.. этот класс Starter хорошо работает для других классов, но для этого он вызывает проблемы и ошибки

1 Ответ

0 голосов
/ 15 декабря 2018

Я полагаю, что проблема связана с методом, который вы вызываете с MASTER1.write();.Вероятно, вам нужно указать выходной файл для книги, в которую вы хотите записать.

...