He estado teniendo problemas al usar la clase JSlider, específicamente con etiquetas de tic.¿Es esto un error en JSlider?
La primera vez que uso setMajorTickSpacing
y setMinorTickSpacing
todo funciona como se esperaba. Sin embargo, las llamadas subsiguientes al setMajorTickSpacing
actualizan las marcas, pero no las etiquetas. He escrito un ejemplo sencillo para demostrar este comportamiento:
import java.awt.event.*;
import javax.swing.*;
public class SliderTest {
public static void main(String args[]) {
JFrame frame = new JFrame();
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent we) {
System.exit(0);
}
});
frame.setSize(300, 250);
JSlider slider = new JSlider(0, 100, 0);
slider.setMajorTickSpacing(10);
slider.setMinorTickSpacing(1);
slider.setPaintLabels(true);
slider.setPaintTicks(true);
slider.setMajorTickSpacing(25);
slider.setMinorTickSpacing(5);
frame.add(slider);
frame.pack();
frame.setVisible(true);
}
}
Dos simples soluciones temporales parecen solucionar el problema - ya sea usando slider.setLabelTable(null)
o slider.setLabelTable(slider.createStandardLabels(25))
antes de la segunda llamada a setMajorTickSpacing
. Dado esto, parecería que la tabla de etiquetas no se está actualizando correctamente.
No estoy seguro de si este es el comportamiento previsto o no. Mi primer instinto es que la actualización del espaciado de las marcas también debería actualizar las etiquetas, pero también hay argumentos para separar las dos.
Así que me gustaría saber cuál es - ¿Es esto un error en JSlider
o el comportamiento previsto? Si es el comportamiento previsto, ¿cuáles serían las razones más destacadas para tomar esa decisión?
parece un error para mí - buena captura :-) – kleopatra
Gracias por compartir este corto. –