我需要制作一个 slider ,允许用户以 0.1 为步长输入 0 到 1 之间的数字。由于 JSlider 只允许整数值,因此我给了它一个从 0 到 10 的范围,并将 JLabel 绑定(bind)到 slider 的值。但我希望标签显示十进制数(值/10.0)。我怎样才能做到这一点?我正在使用 Netbeans 7.4 GUI 编辑器。当我尝试将绑定(bind)表达式编辑为 ${value}/10 时,它只是将其作为字符串附加。转换器中的组件选择器窗口仅显示“不支持对此属性的自定义编辑”。 谢谢
最佳答案
如果要使用BeansBinding:BeansBinding库中实现的EL语言不支持包括原始计算在内的大部分功能。您必须实现自定义 org.jdesktop.beansbinding.Converter
,然后使用“自定义代码”选项添加它:在转换器添加面板中,在转换器属性组合框中选择“自定义代码”,然后实例化您的“属性代码”文本字段中的转换器。
此外,还可以考虑编写自己的 ChangeListener
并将其附加到 JSpinner
上,每次微调器值发生更改时都会更新标签的文本。在我看来,这要容易得多。 :-)
关于java - 如何使用除法将JLabel绑定(bind)到JSlider?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22413136/