JSlider en double
-
24-09-2019 - |
Question
Je fais une interface graphique (utilisant Swing) pour un cadre de poker et besoin d'une sorte de curseur pour permettre aux joueurs de sélectionner une taille de pari. Cependant, le JSlider
Swing fonctionne uniquement avec des valeurs int alors que je besoin de quelque chose qui peut prendre en charge double pour 1 point décimal. Y a-t-il des bibliothèques que je peux utiliser, ou des tours avec le JSlider
?
La solution
Vous pouvez multiplier la valeur par 10
EDIT
Vous pouvez modifier les étiquettes affichées comme suit:
Hashtable labelTable = new Hashtable();
labelTable.put( new Integer( 0 ), new JLabel("0.0") );
labelTable.put( new Integer( 5 ), new JLabel("0.5") );
labelTable.put( new Integer( 10 ), new JLabel("1.0") );
framesPerSecond.setLabelTable( labelTable );
Autres conseils
Un truc vous pouvez utiliser avec JSlider est d'utiliser les unités en cents. Donc, si vous voulez que l'utilisateur de sélectionner un montant compris entre 1 et 10 dollars vous définissez en fait la JSlider à la gamme de 100 à 1000. Ensuite, il vous suffit de convertir la valeur en dollars et en cents lorsque l'utilisateur sélectionne une valeur.
Vous pouvez ensuite utiliser un dictionnaire de valeurs pour indiquer ce que l'étiquette est affiché à toute valeur sur le curseur. Utilisez la méthode setLabelTable()
pour cela.