我想將NetLogo嵌入到一個小個人項目中,但在第一個示例後卡住了。我成功地構建和測試這個例子:嘗試嵌入NetLogo的預期命令錯誤
https://github.com/NetLogo/NetLogo/wiki/Controlling-API#example-embedding
但現在我想擺脫閱讀的例子«消防»文件。這是我做過什麼:
import org.nlogo.lite.InterfaceComponent;
public class TestNetLogo {
public static void main(String[] argv) {
try {
final javax.swing.JFrame frame = new javax.swing.JFrame();
final InterfaceComponent comp = new InterfaceComponent(frame);
java.awt.EventQueue.invokeAndWait(
new Runnable() {
public void run() {
frame.setSize(800, 600);
frame.add(comp);
frame.setVisible(true);
}});
System.out.println("here");
comp.command("breed [turtles turtle]");
System.out.println("there");
}
catch(Exception ex) {
ex.printStackTrace();
}
}
}
更換"breed [turtles turtle]"
爲空字符串的作品,但有一個不平凡的字符串,這是我得到:
Expected command. at position 33 in
at org.nlogo.compiler.CompilerExceptionThrowers$.exception(CompilerExceptionThrowers.scala:26)
at org.nlogo.compiler.ExpressionParser.parseStatement(ExpressionParser.scala:83)
at org.nlogo.compiler.ExpressionParser.parse(ExpressionParser.scala:55)
at org.nlogo.compiler.CompilerMain$$anonfun$compile$1.apply(CompilerMain.scala:34)
at org.nlogo.compiler.CompilerMain$$anonfun$compile$1.apply(CompilerMain.scala:29)
at scala.collection.Iterator$class.foreach(Iterator.scala:772)
at scala.collection.JavaConversions$JIteratorWrapper.foreach(JavaConversions.scala:573)
at scala.collection.IterableLike$class.foreach(IterableLike.scala:73)
at scala.collection.JavaConversions$JCollectionWrapper.foreach(JavaConversions.scala:592)
at org.nlogo.compiler.CompilerMain$.compile(CompilerMain.scala:29)
at org.nlogo.compiler.Compiler$.compileMoreCode(Compiler.scala:34)
at org.nlogo.workspace.Evaluator.org$nlogo$workspace$Evaluator$$invokeCompiler(Evaluator.scala:175)
at org.nlogo.workspace.Evaluator.evaluateCommands(Evaluator.scala:18)
at org.nlogo.workspace.AbstractWorkspaceTraits$Evaluating$class.evaluateCommands(AbstractWorkspaceScala.scala:163)
at org.nlogo.workspace.AbstractWorkspaceScala.evaluateCommands(AbstractWorkspaceScala.scala:19)
at org.nlogo.lite.AppletPanel.command(AppletPanel.scala:137)
at TestNetLogo.main(TestNetLogo.java:15)
有人在這裏與一個想法?
你會嘗試做一個命令,如'創建,龜5',讓我們知道這是否有效? '品種'語句是聲明而不是命令,不能由'command'運行。 –