Java Swing - Desenho marcadores em JSlider
Pergunta
Eu tenho uma barra de progresso que herda de JSlider para fornecer destacando funcionalidade. Destaques pode ser adicionado ao controle deslizante em um ponto (e uma cor) e estes são então pintados no controle. Da seguinte forma:
http://img101.imageshack.us/img101/7608/sliderexample.png
O problema é que eu não posso começar a destaques no lugar certo, eles precisam estar no mesmo local que os marcadores. Eu também não sei como recuperar as margens esquerda e direita para onde os marcadores de início e fim.
Existe uma maneira de obter as coordenadas de cada marcador? Ou talvez uma maneira melhor de realizar esta tarefa?
Muito obrigado!
Solução
Esta é dependente do Look & Feel e há uma boa chance de que não existem quaisquer marcadores em tudo quando o usuário utiliza algum L não-padrão & F. Na verdade, o problema é tanto uma extensão da funcionalidade e realização gráfica de modo que você pode ter que tocar ambos, JSlider e SliderUI.
Note os seguintes métodos:
javax.swing.JSlider.getMajorTickSpacing()
javax.swing.JSlider.getMinorTickSpacing()
Além disso, ele pode ajudar a olhar para javax.swing.plaf.SliderUI
e as classes que se estendem-lo, especialmente
javax.swing.plaf.basic.BasicSliderUI.paintTicks(java.awt.Graphics)
javax.swing.plaf.basic.BasicSliderUI.xPositionForValue(int)