我构建了很多很多 GUI:s,我不喜欢依赖于库,所以我最终自己做了很多基础工作。我最终一遍又一遍地做的一件事是将基元映射到 GUI 组件。
例如,如果它是 boolean
我经常用JCombobox
有两个选项( "true"
, "false"
)如果它是 int
我用 JTextField
.大部分工作是从文本到文本...
一些示例映射:
-
int
或Integer
=>JTextField
或JSpinner
-
boolean
=>JTextField
,JComboBox
或JCheckBox
-
int[]
=>JList
(带有“添加”字段和“删除”按钮) -
Set<Byte>
=> 可能与数组相同
所以,对于问题:
- 是否已经有一个库具有这样的映射,或者我是否需要重新“发明”它?
- 我看到了jfg它使用反射和 SWT 作为前端(您可以使用 swing 实现一个新的前端,但这正是我要避免的)。是否有使用 swing 和 refection 的模拟库?
最佳答案
我对 2 个绑定(bind)库有一些经验:
- glazed lists - 当你想将一个集合映射到一个 jtable 时,这个库绝对会发光(每行一个项目,列是对象的属性)。
- jgoodies binding - 一个更通用的库,用于将 bean 属性映射到 gui 元素。它有点复杂且难以掌握。
为什么是原语?我假设您将模型(由 gui 显示/编辑的所有值的集合)存储在一个或多个对象中,不是吗?如果是这样,您可以依靠自动装箱并在图形用户界面中使用对象包装器。
关于java - 用于处理基元和基元数组/集合的 GUI 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10444209/