Как я могу передать информацию между Джесс и Java? - PullRequest
0 голосов
/ 27 июня 2019

Моя проблема:

Я не t know how to pass information between java and jess.. i have read a lot but i don Не понимаю руководство, мне нужен хороший пример.

У меня есть графический интерфейс с 77 jcheckbox .. Я хочу, чтобы эти jcheckboxs былимои факты и работа с рабочей памятью, поэтому я сделал в jess a shadows факты, вызывающие мой класс на 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)
...