Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JGoodies绑定&x2B;制约因素:如何实现?_Java_Swing_Binding_Constraints_Jgoodies - Fatal编程技术网

Java JGoodies绑定&x2B;制约因素:如何实现?

Java JGoodies绑定&x2B;制约因素:如何实现?,java,swing,binding,constraints,jgoodies,Java,Swing,Binding,Constraints,Jgoodies,我有一个很难回答的问题(我希望答案很简单) 我使用JGoodies绑定将滑块绑定到;效果很好 假设我有以下(人为的)情况,我想模拟购买巧克力和焦糖,我有1.00美元和以下UI指标 C1=“焦糖”滑块=焦糖糖果预算=0至50美分 C2=“巧克力”滑块=巧克力糖果预算=0至50美分 C3=“更改”滑块=剩余部分 我想强制约束C1+C2+C3=100,以便: 如果我将C1向上/向下调整Δx,则C3将调整-Δx 如果我将C2向上/向下调整Δx,则C3将调整-Δx 如果我将C3向上/向下调整Δx,C

我有一个很难回答的问题(我希望答案很简单)

我使用JGoodies绑定将滑块绑定到;效果很好

假设我有以下(人为的)情况,我想模拟购买巧克力和焦糖,我有1.00美元和以下UI指标

  • C1=“焦糖”滑块=焦糖糖果预算=0至50美分
  • C2=“巧克力”滑块=巧克力糖果预算=0至50美分
  • C3=“更改”滑块=剩余部分
我想强制约束C1+C2+C3=100,以便:

  • 如果我将C1向上/向下调整Δx,则C3将调整-Δx
  • 如果我将C2向上/向下调整Δx,则C3将调整-Δx
  • 如果我将C3向上/向下调整Δx,C1将调整y=-floor(Δx/2),C2将调整-x-y
(因此,在所有情况下,调整的总和正好为0)

显而易见的方法是为每个ValueModel添加一个侦听器,以便在每种情况下执行给定的操作。但我不得不担心两件事:

  • 圆度(C1的变化触发C3的变化,然后C3的变化导致C1的变化)
  • 同步:我希望有一种访问完整集合(C1、C2、C3)的方法,使三个数字的总和达到100

我该怎么做呢?

你能为JSlideries的派生实现BoundedRangeModel吗,我在ValueModel上使用JGoodies BoundedRangeAdapter我认为通过这里贴满鳗鱼和camickr的气垫船,非常适合你的灵感