Code
slider.getModel().addChangeListener(new ChangeListener() {
private int prev = -1;
private void resetForeground(Object o, Color c) {
if (o instanceof Component) {
((Component) o).setForeground(c);
}
}
@Override public void stateChanged(ChangeEvent e) {
BoundedRangeModel m = (BoundedRangeModel) e.getSource();
int i = m.getValue();
if ((slider.getMajorTickSpacing() == 0 ||
i % slider.getMajorTickSpacing() == 0) && i != prev) {
Dictionary dictionary = slider.getLabelTable();
resetForeground(dictionary.get(i), Color.RED);
resetForeground(dictionary.get(prev), Color.BLACK);
slider.repaint();
prev = i;
}
}
});
References