Erhalten Sie Zugang zu Daumen/Griff/Knopf von Swing's Jslider
Frage
Grundsätzlich möchte ich den aktuellen Wert anzeigen, auf den der Schieberegriff in Bewegung (entweder über Maus oder Tastatur) angezeigt wird. Ich kann den aktuellen Wert problemlos erhalten, indem ich eine neue ChangeListener & Overried StateChanged -Methode hinzufügen. Aber ich kann nicht den aktuellen Ort des Griffs bekommen.
Ich kann einfach die Kugel beißen und ein Etikett an einem konstanten Ort erstellen und es kontinuierlich aktualisieren, aber ich möchte den Wert direkt über (oder unten) dem Griff anzeigen.
Lösung
Keine gute oder sehr flexible Lösung, aber vielleicht können Sie Ihre eigenen implementieren SliderUI
. ZB mit der bereits definierten Verwendung BasicUI
Sie können auf das Feld zugreifen thumbRect
Welches enthält die Werte, die Sie benötigen.
slider.setUI(new BasicSliderUI(slider) {
public void paintThumb(Graphics g) {
super.paintThumb(g);
g.setColor(Color.black);
g.drawString(Integer.toString(slider.getValue()), thumbRect.x, thumbRect.y + thumbRect.height);
}
});
Andere Tipps
Wenn die Nimbus sieht aus und fühlt sich ist eine Option, eine Live -Anzeige des Werts kann in der entsprechenden Benutzeroberfläche angegeben werden:
UIManager.getLookAndFeelDefaults().put("Slider.paintValue", true);