我如何在jess和java之间传递信息?

时间:2019-06-27 07:55:44

标签: java jess

我的问题是:

我不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)

0 个答案:

没有答案