Получите доступ к большому пальцу/ручке/ручке jslider от Swing's Jslider

StackOverflow https://stackoverflow.com/questions/6347290

  •  27-10-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

Не хорошее или очень гибкое решение, но, возможно, вы можете реализовать свой собственный 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);
  }
});

Другие советы

Если Нимбус выглядит и чувствую это вариант, живой дисплей значения может быть указан в соответствующем пользовательском интерфейсе по умолчанию:

UIManager.getLookAndFeelDefaults().put("Slider.paintValue", true);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top