对于最小的示例,我有三个JComponent
需要相互交互的 Swing 元素: aJSlider
和 two JTextFields
。从JSlider
0 到 50,其中一个 JTextFields 显示 JSlider 的值,第二个JTextField
显示总值的百分比(即,第二个中的 2JSlider
将更新 4% JTextField
)。
这三个元素中的任何一个的更改都应该更新所有其他元素。所以一个ChangeEvent
在JSlider
应该触发setText()
的事件JTextFields
。但是,在这种情况下,其中的setText()
触发器应该触发.ActionEvents
TextFields
JSlider
我一直在用“刷新”标志来解决这个问题,在处理/boolean
之前会检查布尔值。但我想知道是否有任何更程序化或更清洁的方法来防止/循环。ActionEvent
ChangeEvent
ActionEvent
ChangeEvent
我将不胜感激任何见解!
编辑
我正在尝试使用直方图信息进行这项工作,其中百分比值与滑块值不完全匹配(即会有舍入错误)。建议的SpinSliders依赖于setText()
能够“解决”最终值的方法。换句话说,如果输入到的值setText()
与它已经保存的文本相同,它不会触发ActionEvent
,有效地结束循环。如果舍入关闭,则setValue()
的JSlider
和setText()
的JTextField
将永远不会由于舍入而达到“平衡”状态。我希望简明扼要地描述问题。