2

基本上我想在运动时(通过鼠标或键盘)显示滑块句柄指向的当前值。我可以通过添加新的 ChangeListener 和覆盖 stateChanged 方法轻松获取当前值。但我似乎无法获得手柄的当前位置。

我可以硬着头皮在一个固定的位置创建一个标签并不断更新它,但我想在句柄上方(或下方)显示值。

4

2 回答 2

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);
  }
});
于 2011-06-14T17:29:48.160 回答
1

如果Nimbus 外观是一个选项,则可以在相关 UI 默认值中指定值的实时显示:

UIManager.getLookAndFeelDefaults().put("Slider.paintValue", true);
于 2011-06-14T20:32:44.143 回答