Question

I ai un JSlider avec un minimum de 0 et un maximum de 10 000. Je les marques de tiques majeures fixées à 1000. Si je devais peindre les étiquettes maintenant ils apparaissent comme 0, 1000, 2000, 3000, 4000, etc. Ce que je voudrais être montré serait 0, 1, 2, 3, 4, 5, etc. Que serait être une bonne façon d'accomplir cette tâche?

Était-ce utile?

La solution

JSlider.setLabelTable ( Dictionnaire)

EDIT

Sinon, vous pouvez compter sur l'interface utilisateur d'étiquettes prédéfinies et il suffit de modifier le texte de l'étiquette:

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

Autres conseils

Vous pouvez utiliser JSlider.setLabelTable(Dictionary) pour définir des étiquettes spécifiques pour les valeurs que vous souhaitez rendre différemment; par exemple.

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

(Sous la direction en fonction des commentaires précédents.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top