2010-01-31 54 views
13

我正在为一个扑克框架制作一个GUI(使用swing),并且需要某种滑块来让玩家选择一个下注尺寸。但Swing JSlider只适用于int值,而我需要一些可以支持双精度值的小数点。有没有我可以使用的图书馆,或者使用JSlider的技巧?双打JSlider

+0

相关http://stackoverflow.com/questions/1548606/java-link-jslider-and-jtextfield-for-float-value – 2012-01-14 16:28:35

回答

13

您可以10

编辑乘以值

您可以更改显示的标签如下:

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

我如何显示蜱作为双打值 – Aly 2010-01-31 17:26:12

+0

您可以使用setLabelTable来更改用于显示值的组件(JLabels)。 – 2010-01-31 17:28:59

+0

我忘了 - 删除我的帖子,以支持该解决方案。 – aperkins 2010-01-31 17:32:44

7

一个你可以用JSlider的使用是使用单位以美分计算。因此,如果您希望用户选择1到10美元之间的金额,则实际上将JSlider设置为100到1000之间的范围。然后,只需在用户选择值时将值转换为美元和美分。

然后,您可以使用字典值来指定在滑块上的任何值处显示的标签。为此,请使用setLabelTable()方法。

+0

那么最小数量必须是double的情况如5.5所示,我会让JLabel读取5.5并将整数5映射到此JLabel。但是当我调用JSlider.getValue()时,我会得到5,而不是5.5。有关如何处理这个问题的任何想法? – Aly 2010-01-31 19:05:56

+0

这种情况下的最小值是550.您将其映射到5.50以供显示。当你得到用户选择的价值时,你只需除以100得到5.5。 – 2010-02-01 02:11:48