Получите доступ к большому пальцу/ручке/ручке jslider от Swing's Jslider
Вопрос
В основном я хочу отобразить текущее значение, указанное ручкой ползунка при движении (либо через мышь, либо на клавиатуру). Я могу легко получить текущее значение, добавив новый подменчик и переопределяющий метод 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);