我正在将程序从 AWT 更改为 Swing,正如 Java Swing 书的第二章所建议的那样,当我从 Panel 更改为 JPanel 时,面板就消失了。当我从 Button 更改为 JButton 时,同样的情况不会发生。
这似乎是一个错误,因为这样做似乎非常简单 - 只需在名称中添加一个额外的 J - 但我不确定问题出在哪里 - 使用我的 VM(Sun JDK),使用我的 WM( xmonad)或我的编程方式(Clojure 的 Java 支持)。任何想法?
如前所述,我用 Clojure(JDK 的一种类似 lisp 的语言)编写它。这是我的代码:
(定义主要 [] (let [toolbar-frame(Frame."Toolbar Example (Swing)") 剪切按钮(JButton。“剪切”) 复制按钮(JButton。“复制”) 粘贴按钮(JButton。“粘贴”) java 按钮(JButton。“Java”) 窗口按钮(JButton。“Windows”) mac 按钮(JButton。“Mac”) 主题按钮(JButton。“主题”) lnf 面板 (JPanel.) 工具栏面板(面板。) 打印监听器(代理 [ActionListener] [] (actionPerformed [evt] (.getActionCommand evt))) ] (.addWindowListener 工具栏框架 (代理 [WindowAdapter] [] (windowClosing [e] (系统/出口 0)))) ;(doto windows-button (.addActionListener lnf-listener)) ;(doto 主题按钮 (.addActionListener lnf-listener)) ;(doto mac-button (.addActionListener lnf-listener)) ;(doto java-button (.addActionListener lnf-listener)) (doto cut-button (.addActionListener print-listener)) (doto 复制按钮(.addActionListener 打印监听器)) (doto paste-button (.addActionListener print-listener)) (doto lnf-面板 (。添加窗口按钮) (.add java-button) (.add mac 按钮) (.add 主题按钮) (.setLayout (FlowLayout.FlowLayout/LEFT))) (doto 工具栏面板 (.add 剪切按钮) (.add 复制按钮) (。添加粘贴按钮) (.setLayout (FlowLayout.FlowLayout/LEFT))) (doto 工具栏框架 (.add 工具栏面板 BorderLayout/NORTH) (.add lnf-panel BorderLayout/SOUTH) (.setSize 450 250) (.setVisible true))))
谢谢