Je crée une interface graphique (en utilisant swing) pour une structure de poker et j'ai besoin d'un curseur pour permettre aux joueurs de choisir la taille d'un pari. Cependant le Swing JSlider
ne fonctionne qu'avec des valeurs int alors que j'ai besoin de quelque chose qui peut supporter des doubles pour 1 point décimal. Y at-il des bibliothèques que je peux utiliser, ou des astuces avec le JSlider
?JSlider pour les doubles
Répondre
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);
Un astuce vous pouvez utiliser avec JSlider est d'utiliser les unités en cents. Donc, si vous voulez que l'utilisateur sélectionne un montant compris entre 1 et 10 dollars, vous définissez en fait le JSlider entre 100 et 1000. Ensuite, vous convertissez simplement la valeur en dollars et en cents lorsque l'utilisateur sélectionne une valeur.
Vous pouvez ensuite utiliser un dictionnaire de valeurs pour spécifier quelle étiquette est affichée à n'importe quelle valeur du curseur. Utilisez la méthode setLabelTable()
pour cela.
Qu'en est-il de la situation où le nombre minimum doit être un double, disons 5.5, je ferais lire JLabel 5.5 et mapper l'entier 5 à ce JLabel. Mais quand j'appelle JSlider.getValue() j'obtiendra 5, et pas 5.5. Des idées sur la façon de gérer cela? – Aly
La valeur minimale dans ce cas est 550. Vous mappez cela à 5.50 pour l'affichage. Lorsque vous obtenez la valeur que l'utilisateur sélectionné, il suffit de diviser par 100 pour obtenir 5.5. –
http://stackoverflow.com/questions/1548606/java-link-jslider-and-jtextfield-for-float-value –