【问题标题】:JGoodies: Binding multiple swing components to a single model fieldJGoodies:将多个摆动组件绑定到单个模型字段
【发布时间】:2014-12-07 21:49:26
【问题描述】:

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

JSpinner durationDaySpinner;
JSpinner durationHourSpinner;
JSpinner durationMinuteSpinner;

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

long durationInMs;

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

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

干杯

【问题讨论】:

    标签: java swing jgoodies


    【解决方案1】:

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

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

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

    例如,

    long ms = TimeUnit.DAYS.toMillis(days) + TimeUnit.HOURS.toMillis(hours) + TimeUnit.MINUTES.toMillis(minutes);    
    

    【讨论】:

      猜你喜欢
      • 2020-12-07
      • 1970-01-01
      • 2011-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多