0

強調表示機能を提供するためにJSliderから継承するプログレスバーがあります。ハイライトは、あるポイント(および色)でスライダーに追加でき、コントロールにペイントされます。次のように:

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

問題は、ハイライトを適切な場所に配置できないことです。ハイライトはマーカーと同じ場所にある必要があります。また、マーカーの開始位置と終了位置までの左右の余白を取得する方法もわかりません。

各マーカーの座標を取得する方法はありますか?または、おそらくこのタスクを実行するためのより良い方法ですか?

どうもありがとう!

4

1 に答える 1

2

これはルックアンドフィールに依存しており、ユーザーが非標準の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)
于 2010-03-12T12:44:33.777 に答える