Pregunta

Tengo un JSlider con un mínimo de 0 y un máximo de 10.000. Tengo las marcas de graduación fijado en 1.000. Si tuviera que pintar las etiquetas ahora se muestran como 0, 1000, 2000, 3000, 4000, etc. Lo que me gustaría que se muestra sería 0, 1, 2, 3, 4, 5, etc. Lo que haría ser una buena manera de lograr esta tarea?

¿Fue útil?

Solución

usando JSlider.setLabelTable ( Diccionario)

editar

Como alternativa, puede depender de la interfaz de usuario etiqueta predefinida y sólo cambiar el texto de la etiqueta:

    Enumeration e = jSlider.getLabelTable().keys();

    while (e.hasMoreElements()) {
        Integer i = (Integer) e.nextElement();
        JLabel label = (JLabel) jSlider.getLabelTable().get(i);
        label.setText(String.valueOf(i / 1000));          
    }

Otros consejos

Se puede usar JSlider.setLabelTable(Dictionary) para fijar etiquetas específicas para los valores que desea hacer de manera diferente; por ejemplo.

JSlider slider = ...

Dictionary dict = new Hashtable();
for (int i=0; i<=10000; i += 1000) {  
  dict.put(i, new JLabel(Integer.toString(i / 1000)));
}

slider.setLabelTable(dict);

(Editado en base a los comentarios anteriores.)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top