Моя проблема:
Я не 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)