我已经构建了许多许多 GUI:我不喜欢依赖库,所以我最终自己做了很多基础知识。我最后做的一件事就是将原语映射到GUI组件。
例如,如果是boolean
,我经常使用JCombobox
两个选项("true"
,"false"
),如果是int
,我会使用JTextField
。大部分工作都是来自文本......
一些示例映射:
int
或Integer
=> JTextField
或JSpinner
boolean
=> JTextField
,JComboBox
或JCheckBox
int[]
=> JList
(带“添加”字段和“删除”按钮)Set<Byte>
=&gt;可能与数组相同所以,对于问题:
答案 0 :(得分:2)
有2个绑定库我有一些经验:
为什么是原始人?我假设您在一个或多个对象中存储您的模型(由gui显示/编辑的所有值的集合)?如果是这样,你可以依靠自动装箱并在gui中使用对象包装器。
答案 1 :(得分:1)
应该提到 JavaFX ,这仍然不是我的啤酒。
答案 2 :(得分:0)
你可能会觉得有趣的是看一下基于Swing的Clojure的GUI库seesaw。
它非常适合将Swing功能包装在非常简单的功能中 - 即使您最终没有直接使用它,也可以提供一些好的设计思路。例如,它可以将控件直接绑定到可变数据对象:
; Bind a the value of a slider to an atom, with a transform
; that forces the value to [0, 1]
(let [s (slider :min 0 :max 1)
a (atom 0.0)]
(bind s (transform / 100.0) a))