;; ;; gui.lsp - Tiny demo using AWT ;; Usage: miolisp>(load "gui.lsp") ;; ;;(import "Callnative") ;; loading in "init.lsp" (setq frame "java.awt.Frame") (setq button "java.awt.Button") (define frame.new (native frame "new" "java.lang.String")) (define frame.add (native frame "add" "java.awt.Component" "java.lang.Object")) (define frame.show (native frame "show")) (define frame.pack (native frame "pack")) (define button.new (native button "new" "java.lang.String")) (define button.setlabel (native button "setLabel" "java.lang.String")) (define button.addactionlistener (native button "addActionListener" "java.awt.event.ActionListener")) (defun gettestbtn (msg1 msg2 &aux n) ;; defun is defined in "init.lsp" ;; get Button Object (setq n (button.new msg1)) ;; get and set actionListener (button.addactionlistener n (getactionlistener ;; Actoion listener callback (x <- Event) (lambda (x) (print x) (button.setlabel n msg2)))) n ) (defun createwindow (msg &aux win) (setq win (frame.new msg)) (frame.add win (gettestbtn msg "Ahooo") "North") (frame.add win (gettestbtn msg "Boooz") "Center") (frame.add win (gettestbtn msg "Chao!") "South") (frame.pack win) (frame.show win) (sleep 1000) ) (mapcar createwindow '("Mio Win1" "Mio Win2" "Mio Win3"))