我的问题是:
我不t know how to pass information between java and jess.. i have read a lot but i don
不理解该手册,我需要一个很好的例子。
我有一个带有77个jcheckbox的GUI。.我希望这些jcheckboxs是我的事实并能与工作内存一起工作,这就是为什么我在jess中制作了一个阴影事实,要求在Java上调用我的类,并且因为此jcheckbox仅返回2个值,还为它们之间的差异另外设置了77个变量。
我尝试使用返回全局变量,打印出一些文本,以及其他用于搜索某些结果的消息,但没有消息显示我吃了菜豆,我不知道我的错误在哪里。我将向您展示我在Java中的方法和我在jess中的文件。
注意:我根本不想让您解决我的问题,但是我需要示例和一些建议,我知道我有很多错误,对此我是陌生的。
我希望你能理解我。.非常感谢您抽出宝贵的时间阅读本文,谢谢。
public void calcular (String args[]) throws JessException{
if(jButton7.isSelected()){
Rete engine = new Rete();
engine.batch("try22.clp");
int score =
engine.getGlobalContext().getVariable("*var*").intValue(null);
System.out.println("Score = " + score);
engine.eval("(facts)");
}}
//i think i have to declare something more here.
//now the jess's file
(deftemplate Testeo
(declare (from-class Testeo)
(include-variables TRUE))
)
(reset)
(defglobal ?*var* = 0)
(reset)
(bind ?a (new Testeo))
(add ?a)
(facts)
(defquery search-by-true
"Finds true"
(declare (variables ?ln))
(Testeo (jCheckBox ?ln)(box ?ot)))
(bind ?result (run-query* search-by-true TRUE))
(bind ?x 0)
(while (?result next)
(bind ?x (+ ?x 1))
)
(bind ?*var* ?x)
(printout t "hi testing" ?x crlf)
(printout t (* ?x 0.3) crlf)