Domanda

Ho un JSlider con un minimo di 0 e un massimo di 10.000. Ho i principali segni di graduazione fissato a 1.000. Se dovessi dipingere le etichette ora si rivelerebbe come 0, 1000, 2000, 3000, 4000, ecc Quello che vorrei essere mostrato sarebbe 0, 1, 2, 3, 4, 5, ecc Che cosa sarebbe essere un buon modo per realizzare questo compito?

È stato utile?

Soluzione

JSlider.setLabelTable ( Dizionario)

Modifica

In alternativa si può fare affidamento su predefinito UI etichetta e basta cambiare il testo dell'etichetta:

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

Altri suggerimenti

Si potrebbe utilizzare JSlider.setLabelTable(Dictionary) per impostare etichette specifiche per i valori che si desidera rendere in modo diverso; per es.

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

(A cura sulla base dei commenti precedenti.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top