Pregunta

Básicamente, quiero mostrar el valor actual apuntado por el mango del control deslizante cuando está en movimiento (ya sea a través del mouse o el teclado). Puedo obtener fácilmente el valor actual agregando un nuevo método ChangeListener y anulación de statechanged. Pero parece que no puedo obtener la ubicación actual del mango.

Puedo morder la bala y crear una etiqueta en un lugar constante y actualizarla continuamente, pero quiero mostrar el valor justo arriba (o abajo) el mango.

¿Fue útil?

Solución

No es una solución buena o muy flexible, pero tal vez pueda implementar la suya propia SliderUI. Por ejemplo, usando el ya definido BasicUI puedes acceder al campo thumbRect que contiene los valores que necesita.

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

Otros consejos

Si el Nimbus see y siente es una opción, se puede especificar una visualización en vivo del valor en el valor predeterminado de la interfaz de usuario relevante:

UIManager.getLookAndFeelDefaults().put("Slider.paintValue", true);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top