【发布时间】:2018-07-10 15:39:49
【问题描述】:
我目前正在 MATLAB UI 中创建 Java Swing JSlider。我的滑块的最小值和最大值分别为 0.0 和 10.0。我注意到滑块的指针/插入符号/菱形仅捕捉到整数值。也就是说,例如,不可能将滑块设置为 5.5 的值。这种行为对于我的应用程序来说并不是特别理想。
这是我的代码:
hFig = figure(1);
hC = uicomponent('style','javax.swing.jslider','position',[10 10 400 200]);
hC.JavaComponent.setPaintLabels(true);
hC.JavaComponent.setPaintTicks(true);
hC.JavaComponent.setMinimum(0);
hC.JavaComponent.setMaximum(10);
hC.JavaComponent.setValue(5);
hC.JavaComponent.setMajorTickSpacing(2);
hC.JavaComponent.setMinorTickSpacing(1);
hC.JavaComponent.SnapToTicks(false);
hC.JavaComponent 是对实际 Java 滑块对象的引用。函数 uicomponent() 用于在 MATLAB 图形中实例化 Java Swing 对象。由于我直接使用 Java 对象,我的直觉是我在 MATLAB 中工作这一事实并不是非常重要,但我可能是错的。
我的问题是:
- 如何创建允许十进制值的滑块?
- 如果 (1) 不可行,我应该使用更好的控件来代替滑块吗?
【问题讨论】:
-
你能从0滑到1000除以100吗?
-
“我应该使用更好的控件来代替滑块吗?”
JSpinner可以使用带有双精度值的SpinnerNumberModel。 -
@Yunnosch,我可以,但我希望避免这样的伎俩。不过这是个好建议。
-
@AndrewThompson,我去看看 JSpinners,谢谢。