;; Create the widgets (defglobal ?*f* = (new java.awt.Frame "Button Demo")) (defglobal ?*b* = (new java.awt.Button "Hello")) ;; Define the deffunction (deffunction say-hello "Unconditionally print a message" (?evt) (printout t "Hello, World!" crlf)) ;; Connect the deffunction to the button (?*b* addActionListener (new jess.awt.ActionListener say-hello (engine))) ;; Assemble and display the GUI (?*f* add ?*b*) (?*f* pack) (set ?*f* visible TRUE)
AWT Examples
Demos
Java files needed:Card.java Cards.java
(bind ?pt (new java.awt.Point)) (set-member ?pt x 37) (set-member ?pt y 42) (get-member ?pt x)
(get-member System out)
the representation can be :
Example
Java program:
public class NameBean { private String name = "Bob"; public String getName() { return name; } public void setName(String s) { name = s; } }
(defclass simple NameBean) (ppdeftemplate simple) (bind ?sb (new NameBean)) (definstance simple ?sb static) (facts) (call ?sb setName "Fred") (facts)
Demo: dname.clp
java source: DynamicBean.java
jess source: dname.clp
Demo: vector.clp
java source: Vector.java
jess source: vector.clp
(deftemplate automobile "A specific car." (slot make) (slot model) (slot year (type INTEGER)) (slot color (default white))) (deftemplate used-auto extends automobile (slot mileage) (slot blue-book-value) (multislot owners))
public void addInputRouter(String s, Reader is, boolean consoleLike) public void addOutputRouter(String s, Writer os)
Previous Jess Introduction Up TOC Next Efficiency in Rule-based Languages