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.

War es hilfreich?

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