Question

En gros je veux afficher la valeur actuelle pointée par la poignée du curseur lorsqu'il est en mouvement (soit par la souris ou le clavier). Je peux facilement obtenir la valeur actuelle en ajoutant une nouvelle méthode ChangeListener et remplaçant stateChanged. Mais je ne peux pas sembler obtenir l'emplacement actuel de la poignée.

Je peux juste mordre la balle et créer une étiquette à un endroit constant et le mettre à jour en permanence, mais je veux afficher la valeur juste au-dessus (ou en dessous) de la poignée.

Était-ce utile?

La solution

Pas une bonne ou d'une solution très flexible, mais vous pouvez peut-être mettre en œuvre votre propre SliderUI. Par exemple. en utilisant le BasicUI déjà défini, vous pouvez accéder au thumbRect de champ qui contient les valeurs dont vous avez besoin.

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);
  }
});

Autres conseils

Si le Nimbus look and feel est une option , un affichage en direct de la valeur peut être spécifiée dans la valeur par défaut de l'interface utilisateur concerné:

UIManager.getLookAndFeelDefaults().put("Slider.paintValue", true);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top