I'm changing a program from AWT to Swing, as proposed on the second chapter of Java Swing's book, and the panel just disappears when I do the change from Panel to JPanel. The same doesn't happen when I change from Button to JButton.
It seems to be a bug, since it appears to be trivially simple to do so - just adding an extra J to the name - but I'm not sure where the problem is - with my VM (Sun JDK), with my WM (xmonad) or with the way I'm programming (Clojure's Java Support). Any idea?
As previously stated, I'm writing it in Clojure (a lisp-like language for the JDK). Here is my code:
(defn main [] (let [toolbar-frame (Frame. "Toolbar Example (Swing)") cut-button (JButton. "Cut") copy-button (JButton. "Copy") paste-button (JButton. "Paste") java-button (JButton. "Java") windows-button (JButton. "Windows") mac-button (JButton. "Mac") motif-button (JButton. "Motif") lnf-panel (JPanel.) toolbar-panel (Panel.) print-listener (proxy [ActionListener] [] (actionPerformed [evt] (.getActionCommand evt))) ] (.addWindowListener toolbar-frame (proxy [WindowAdapter] [] (windowClosing [e] (System/exit 0)))) ;(doto windows-button (.addActionListener lnf-listener)) ;(doto motif-button (.addActionListener lnf-listener)) ;(doto mac-button (.addActionListener lnf-listener)) ;(doto java-button (.addActionListener lnf-listener)) (doto cut-button (.addActionListener print-listener)) (doto copy-button (.addActionListener print-listener)) (doto paste-button (.addActionListener print-listener)) (doto lnf-panel (.add windows-button) (.add java-button) (.add mac-button) (.add motif-button) (.setLayout (FlowLayout. FlowLayout/LEFT))) (doto toolbar-panel (.add cut-button) (.add copy-button) (.add paste-button) (.setLayout (FlowLayout. FlowLayout/LEFT))) (doto toolbar-frame (.add toolbar-panel BorderLayout/NORTH) (.add lnf-panel BorderLayout/SOUTH) (.setSize 450 250) (.setVisible true))))
Thanks