2010-01-31 55 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