1

我正在尝试在我正在开发的摇摆 gui 上创建一个“持续时间”字段。为此,我有 3 个 JSpinner 组件。天、小时和分钟。

JSpinner durationDaySpinner;
JSpinner durationHourSpinner;
JSpinner durationMinuteSpinner;

如果可能的话,我想将这 3 个组件“绑定”回单个域字段:

long durationInMs;

IE

durationInMs = days*24*60*60*1000 + hours*60*60*1000 + minutes*60*1000;

谁能建议我如何使用 JGoodies 绑定?我只将单个组件绑定到模型/域字段。

干杯

4

1 回答 1

1

您必须为每个微调器添加一个单独ValueModel的,将每个微调器绑定ValueModel到适当的微调器,然后将一个 1 添加PropertyChangeListener到所有三个ValueModels. 当三个微调器绑定中的任何一个所持有的值ValueModels发生变化时,获取每个值,像您在问题中所做的那样计算 ms,并将其设置在ValueModel您要设置的 bean 属性(或 )上。

本质上,您在要绑定的域模型和 UI 模型之间添加另一个迷你模型,以便将多个 UI 绑定组件映射到单个域属性。

另外,为了可读性,我建议使用java.util.concurrent.TimeUnit而不是大量的乘法。

例如,

long ms = TimeUnit.DAYS.toMillis(days) + TimeUnit.HOURS.toMillis(hours) + TimeUnit.MINUTES.toMillis(minutes);    
于 2014-12-10T02:40:11.333 回答