Purtroppo non ho piu' un ambiente Java sotto mano, quindi non riesco a testare il codice.
Ma anche senza, basta ragionare:
in
(defglobal ?*f* = (new JFrame "Button Demo"))
(?*f* setLocation 200 100)
(?*f* setSize 300 150)
(defglobal ?*b* = (new JButton "INIZIO TRIAGE"))
(defglobal ?*s* = (new JPanel))
(defglobal ?*l* = (new JLabel "TRIAGE"))
(defglobal ?*p* = (get ?*f* contentPane))
(?*p* add ?*s*)
(?*s* add ?*l*)
(?*s* add ?*b*)
(?*b* addActionListener (implement ActionListener using (lambda (?name ?event)
(run 1))))
;(?*f* pack)
(set ?*f* visible TRUE)
crei la tua bella form inizial. Ovviamente questa form deve essere
completa, con tutti i controlli!
Dopo di che esegui il seguente codice:
(defrule inizio
(initial-fact)
=>
(?*l* setText "SISTEMA ESPERTO")
(?*s* add ?*l*)
(?*b* setText "AVVIO")
(?*s* add ?*b*)
(?*s* validate)
(?*b* addActionListener (implement ActionListener using (lambda (?name ?event)
(run 1))))
;(?*f* refresh)
(?*f* show)
A che serve?
Ragiona! Hai la tua form, quindi qui
1) cambi il testo di alcuni controlli (va bene)
2) riaggiungi i controlli al panello.
Ma perche'?
3) aggiungi un nuovo listener.
Ma perche'?
4) richiaimi il metodo show della form.
Ma perche'?
Non devi inventarti miracolosi meccanismi di aggironamento.
Il tutto
deve essere semplice:
1) crei la form (aggiungi i controlli, registri le callback)
2) la visualizzi
3) aggiorni il contenuto dei controlli
4) fine
Quindi, fondamentalmente, il 50% del codice che hai scritto e' dannoso.