Java Swing - Zeichnung Markierungen auf JSlider
Frage
habe ich einen Fortschrittsbalken, die erben von JSlider Funktionalität hervorheben zu liefern. Highlights können an einem Punkt, an dem Schieber hinzugefügt werden (und Farbe), und diese werden dann auf die Steuer gemalt. Wie folgt:
http://img101.imageshack.us/img101/7608/sliderexample.png
Das Problem ist, dass ich nicht das bekommen Highlights an der richtigen Stelle, die sie benötigen, wie die Markierungen an der gleichen Stelle sein. Ich weiß auch nicht, wie der linken und rechten Rand abzurufen, wo die Markierungen beginnen und enden.
Gibt es trotzdem, um die Koordinaten jeder Markierung zu bekommen? Oder vielleicht ein besserer Weg, um diese Aufgabe durchführt?
Vielen Dank!
Lösung
Dies ist abhängig von dem Look & Feel und es gibt eine gute Chance, dass es keine Markierungen überhaupt, wenn der Benutzer ein Nicht-Standard-L & F verwendet. In der Tat ist das Problem sowohl eine Erweiterung der Funktionalität und grafische Umsetzung, so dass Sie beide berühren müssen können, JSlider und SliderUI.
Beachten Sie die folgenden Methoden:
javax.swing.JSlider.getMajorTickSpacing()
javax.swing.JSlider.getMinorTickSpacing()
Auch kann es helfen, in javax.swing.plaf.SliderUI
und die Klassen suchen es erstreckt, insbesondere
javax.swing.plaf.basic.BasicSliderUI.paintTicks(java.awt.Graphics)
javax.swing.plaf.basic.BasicSliderUI.xPositionForValue(int)