java - 如何使用除法将JLabel绑定(bind)到JSlider?

标签 java swing converters bind jslider

我需要制作一个 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/

相关文章:

java - 当我尝试从 getter 获取数据时,为什么会收到 NullPointerException?

java - 自定义 Canvas 对象不自动重绘

c# - 音频转换 C#

c - 奇数还是十六进制数?

javascript - .NET webclient 向 Javascript 请求代码

java - 在 Libgdx TextField 中输入键处理

java - 有什么方法可以知道 CellStyle 已经存在于工作簿中(重用)使用 POI 或仅复制 Celstyle obj 而不是引用

java - Action 监听器java问题

java - 获取随机数,数字越大越不可能

java - 我可以创建没有 svg 文件的 JSVGCanvas 吗?