2010-01-31 13 views
13

मैं पोकर ढांचे के लिए एक जीयूआई (स्विंग का उपयोग कर) बना रहा हूं और खिलाड़ियों को शर्त आकार चुनने के लिए कुछ प्रकार की स्लाइडर की आवश्यकता है। हालांकि स्विंग JSlider केवल int मानों के साथ काम करता है जबकि मुझे ऐसा कुछ चाहिए जो 1 दशमलव बिंदु के लिए युगल का समर्थन कर सके। क्या कोई पुस्तकालय मैं उपयोग कर सकता हूं, या JSlider के साथ चालें?युगल के लिए JSlider

+0

संबंधित http://stackoverflow.com/questions/1548606/java-link-jslider-and-jtextfield-for-float-value –

उत्तर

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

+0

के रूप में टिकों पर मूल्य कैसे दिखा सकता हूं आप सेट करने के लिए setLabelTable का उपयोग कर सकते हैं घटकों (जेएलएबल्स) प्रदर्शित मूल्यों के लिए उपयोग किया जाता है। –

+0

मैं इसके बारे में भूल गया - उस समाधान के पक्ष में मेरी पोस्ट को हटा रहा हूं। – aperkins

7

एक चाल आप JSlider साथ उपयोग कर सकते हैं इकाइयों का उपयोग करने के लिए है सेंट में इसलिए यदि आप चाहते हैं कि उपयोगकर्ता 1 और 10 डॉलर के बीच राशि का चयन करे, तो आप वास्तव में JSlider को 100 से 1000 तक सेट करते हैं। फिर जब आप मान का चयन करते हैं तो आप मूल्य को डॉलर और सेंट में परिवर्तित कर देते हैं।

फिर आप स्लाइडर पर किसी भी मूल्य पर कौन सा लेबल प्रदर्शित होता है यह निर्दिष्ट करने के लिए मूल्यों का एक शब्दकोश का उपयोग कर सकते हैं। इसके लिए setLabelTable() विधि का उपयोग करें।

+0

उस स्थिति के बारे में क्या है जहां न्यूनतम संख्या एक डबल होनी चाहिए, 5.5 कहें, मैं जेएलएबल को 5.5 पढ़ूंगा और इस जेएलएबल में पूर्णांक 5 को मैप कर दूंगा। लेकिन जब मैं JSlider.getValue() को कॉल करता हूं तो मुझे 5 मिलेगा, और 5.5 नहीं। इस से निपटने के तरीके पर कोई विचार? – Aly

+0

इस मामले में न्यूनतम मूल्य 550 है। आप इसे प्रदर्शित करने के लिए 5.50 पर मैप करते हैं। जब आप उस मान को प्राप्त करते हैं जिसे उपयोगकर्ता ने चुना है तो आप 5.5 प्राप्त करने के लिए बस 100 से विभाजित करें। –

संबंधित मुद्दे