0

初めてシーソーを使用して 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) 
4

1 に答える 1

3

(button)関数ではないボタン (コンポーネント) を返します。後で as として使用すると(b :group groups)、実際にbは関数であるかのように呼び出され、2 つの引数 と が渡され:groupますgroups。ボタンをキャストして機能させることができないため、失敗します。

第二に、グループがほとんど意味をなさない(button)通常の を作成すると思います。JButtonのようなラジオボタンのこと(radio)ですか?

これら 2 つのうちの 1 つで、おそらく期待通りの結果が得られるはずです。

ラジオ ボタン:

(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)が、これは私にとってはエンドツーエンドで機能します。

于 2014-07-09T05:12:01.983 に答える