基本上我想在运动时(通过鼠标或键盘)显示滑块手柄指向的当前值。我可以通过添加一个新的ChangeListener&来轻松获得当前值。覆盖stateChanged方法。但我似乎无法得到手柄的当前位置。
我可以咬紧牙关,在一个恒定的地方创造一个标签。连续更新它但我想在句柄上方(或下方)显示值。
答案 0 :(得分:3)
不是一个好的或非常灵活的解决方案,但也许你可以实现自己的SliderUI
。例如。使用已定义的BasicUI
,您可以访问包含所需值的字段thumbRect
。
slider.setUI(new BasicSliderUI(slider) {
public void paintThumb(Graphics g) {
super.paintThumb(g);
g.setColor(Color.black);
g.drawString(Integer.toString(slider.getValue()), thumbRect.x, thumbRect.y + thumbRect.height);
}
});
答案 1 :(得分:1)
如果Nimbus Look and Feel是一个选项,则可以在相关的UI默认值中指定值的实时显示:
UIManager.getLookAndFeelDefaults().put("Slider.paintValue", true);