我制作一个简单的GUI界面,用户可以在其中添加/删除一个人。我设置了GUI,其中有一个People
表,其中包含三个字段:Name
,Age
和Likes
。
我有一个名为Add Person
的按钮,我希望弹出一个对话框。但是,我收到错误:
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: No im
plementation of method: :visible! of protocol: #'seesaw.core/Showable found for
class: guidemo.core$add_person
我不知道在哪里使用visible!
选项。
我的对话框中有以下代码:
(defn add-person [person]
;(seesaw/frame :title "Add New Person" :on-close :exit :content
(seesaw/dialog :content
(seesaw/flow-panel :items
["Name:" (seesaw/text :id :title)
;"Age:" (seesaw/text :id :age)
;"Likes:" (seesaw/text :id :likes)
])
:option-type :ok-cancel)
:success-fn (fn [p] (seesaw/text (seesaw/select (seesaw/to-root p) [:#name ] )))
(seesaw/show! add-person))
我从跷跷板api那里得到了这个例子来开始自己的事情。我注释掉了框架,因为不允许在另一个容器的顶部添加容器,我现在注释掉了其他字段。我知道'success-fn`不会向表中添加任何内容,但我更关心的是在单击按钮时显示弹出窗口。
我的按钮代码是:
(def add-button
(seesaw/button
:text "Add New Person"
:listen [:mouse-pressed add-person]
:popup add-person))
我可以使用seesaw/input
来创建一个包含一个字段的简单输入框,但是我希望有一个包含三个字段的输入框。有没有解决的办法? (是的,我尝试了3个输入框,但它们一次弹出一个,非常不直观)