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!

War es hilfreich?

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)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top