Получить доступ к пальцу / ручке / ручке Swing's JSlider - PullRequest
2 голосов
/ 14 июня 2011

В основном я хочу отобразить текущее значение, на которое указывает ползунок, когда он находится в движении (с помощью мыши или клавиатуры).Я могу легко получить текущее значение, добавив новый метод ChangeListener и переопределив метод stateChanged.Но я не могу понять текущее местоположение ручки.

Я могу просто прикусить пулю и создать метку в постоянном месте и постоянно обновлять ее, но я хочу отобразить значение чуть выше (или ниже) ручки.

Ответы [ 2 ]

3 голосов
/ 14 июня 2011

Не очень хорошее или очень гибкое решение, но, возможно, вы можете реализовать свое собственное 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 голос
/ 15 июня 2011

Если параметр Nimbus Look and Feel является параметром, в соответствующем пользовательском интерфейсе по умолчанию можно указать отображение значения в реальном времени:

UIManager.getLookAndFeelDefaults().put("Slider.paintValue", true);
...