Вопрос

У меня есть индикатор выполнения, который наследуется от JSlider и обеспечивает функциональность выделения. Основные моменты можно добавить к ползунку в определенной точке (и цвет), а затем они будут нарисованы на элементе управления.Следующее:

http://img101.imageshack.us/img101/7608/sliderexample.png

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

Можно ли как-нибудь получить координаты каждого маркера?Или, возможно, лучший способ выполнить эту задачу?

Большое спасибо!

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

Решение

Это зависит от внешнего вида, и есть большая вероятность, что маркеров вообще не будет, когда пользователь использует какой-либо нестандартный L&F.На самом деле ваша проблема заключается как в расширении функциональности, так и в графической реализации, поэтому вам, возможно, придется коснуться обоих: JSlider и SliderUI.

Обратите внимание на следующие методы:

javax.swing.JSlider.getMajorTickSpacing() 
javax.swing.JSlider.getMinorTickSpacing() 

Кроме того, это может помочь изучить javax.swing.plaf.SliderUI и классы, расширяющие его, особенно

javax.swing.plaf.basic.BasicSliderUI.paintTicks(java.awt.Graphics)
javax.swing.plaf.basic.BasicSliderUI.xPositionForValue(int)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top