Question

J'ai une barre de progression qui hérite de JSlider pour fournir des fonctionnalités mettant en évidence. Faits saillants peut être ajouté au curseur à un point (et une couleur) et ceux-ci sont ensuite peints sur le contrôle. Comme suit:

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

Le problème est que je ne peux pas les Faits saillants au bon endroit, ils doivent être au même endroit que les marqueurs. Je ne sais pas aussi comment récupérer les marges gauche et droite à l'endroit où les marqueurs de début et de fin.

Y at-il de toute façon à obtenir les coordonnées de chaque marqueur? Ou peut-être une meilleure façon d'effectuer cette tâche?

Merci beaucoup!

Était-ce utile?

La solution

Cela dépend de la Look & Feel et il y a une bonne chance qu'il n'y a pas de marqueurs du tout lorsque l'utilisateur utilise une non standard L & F. En fait, votre problème est à la fois une extension de la fonctionnalité et la réalisation graphique de sorte que vous pourriez avoir à toucher à la fois, et JSlider SliderUI.

Notez les méthodes suivantes:

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

En outre, il peut aider à examiner javax.swing.plaf.SliderUI et les classes PROLONGER, en particulier

javax.swing.plaf.basic.BasicSliderUI.paintTicks(java.awt.Graphics)
javax.swing.plaf.basic.BasicSliderUI.xPositionForValue(int)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top