使用跷跷板添加按钮组

时间:2014-07-08 21:19:25

标签: clojure seesaw

我是第一次使用跷跷板创建一个GUI,我仍然坚持如何将按钮添加到按钮组并在同一帧上显示它们(按钮)。这是我到目前为止所做的。

(def b (button :text "Start a new Project"))

(def c (button :text "Continue an Existing Project"))


(def groups (button-group))

(flow-panel :items [(b :group groups)
                        (c :group groups)])

(display groups) 

1 个答案:

答案 0 :(得分:3)

(button)返回一个不是函数的按钮(组件)。如果您以后将其用作(b :group groups),它实际上会尝试调用b,就像它是一个函数一样,向它传递两个参数::groupgroups。这就是它失败的原因,因为它无法使按钮运行。

其次,我相信(button)会创建一个常规的JButton,但这个群体没有意义。你的意思是单选按钮,比如(radio)

这两个中的一个可能应该按照你的期望做。

单选按钮:

(def groups (button-group))

(def b (radio :text "Start a new Project" :group groups))

(def c (radio :text "Continue an Existing Project" :group groups))

(def panel
  (flow-panel :items [b c]))

(invoke-later
  (-> (frame :content panel :on-close :dispose) pack! show!))

常规按钮:

(def b (button :text "Start a new Project"))

(def c (button :text "Continue an Existing Project"))

(def panel
  (flow-panel :items [b c]))

(invoke-later
  (-> (frame :content panel :on-close :dispose) pack! show!))

您可以在此处使用(display)功能代替此(invoke-later)代码段,但这对我来说是端到端的。