Добавление групп кнопок с помощью качелей
Я создаю графический интерфейс с использованием качелей впервые, и я застрял на том, как добавить кнопки в группы кнопок и отображать их (кнопки) в одном кадре. Это то, что я до сих пор.
(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 ответ
(button)
возвращает кнопку (компонент), которая не является функцией. Если вы позже используете его как (b :group groups)
, он на самом деле пытается вызвать b
как если бы это была функция, передавая ей два аргумента: :group
а также groups
, Вот почему он терпит неудачу, потому что он не может использовать кнопку для работы.
Во-вторых, я верю (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)
фрагмент здесь, но это работает сквозной для меня.