This is the mail archive of the kawa@sources.redhat.com mailing list for the Kawa project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

I need help creating an anonymous class with (object


When I click the button it gives me a NullPointerException.  I can read
'num-clicks' from within the anonymous class method but I can't 'set!' it.
I have no clue.  Don't be surprised if I'm doing something bazerko.  I'm
brand new to this.  Thanks for any help.
-Andre.
Oh ya:
kawa version 1.60.70
WindowsMe
java version "1.2.2"
Classic VM (J2RE 1.2.2 IBM build wn122-20000720 (JIT enabled: jitc))


Here's the source:

(invoke-static <javax.swing.UIManager> 'setLookAndFeel
   (invoke-static <javax.swing.UIManager>
      'getCrossPlatformLookAndFeelClassName))
(define label-prefix "Number of button clicks: ")
(define num-clicks 0)
(define label (make <javax.swing.JLabel> "0     "))
(define button (make <javax.swing.JButton> "Swing button!"))
(define pane (make <javax.swing.JPanel>))
(define frame (make <javax.swing.JFrame> "SwingApplication"))
(invoke button 'setMnemonic #\i)
(invoke (as <javax.swing.JButton> button) 'addActionListener
   (object
      (<java.awt.event.ActionListener>)
      ((actionPerformed (e <java.awt.event.ActionEvent>)) <void>
         (display "got action on button -- Jiffy Rules")
;;;
;;;   This chunk of code causes a problem
;;;
         (set! num-clicks (+ 1 num-clicks))
;;;
;;;
;;;
;            (invoke
;               (as <javax.swing.JLabel> label)
;               'setText
;               (as <java.lang.String>
;                  (string-append label-prefix
;                    (number->string num-clicks))))
         (newline))))
(invoke label 'setLabelFor button)
(invoke pane 'setBorder
   (invoke-static <javax.swing.BorderFactory> 'createEmptyBorder
      30 30 10 30))
(invoke pane 'setLayout (make <java.awt.GridLayout> 0 1))
(invoke pane 'add button)
(invoke pane 'add label)
(invoke (invoke frame 'getContentPane) 'add pane
   (static-field <java.awt.BorderLayout> 'CENTER))
(invoke (as <javax.swing.JFrame> frame) 'addWindowListener
   (object
      (<java.awt.event.WindowAdapter>)
      ((windowClosing (e <java.awt.event.WindowEvent>))
         (exit))))
(invoke frame 'pack)
(invoke frame 'setVisible #t)





Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]