Cambiar las etiquetas pueden visualizar en el JSlider?
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?
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