2016-07-31 23 views
8

मैं JavaFx का उपयोग कर रहा हूं और मुझे स्लाइडर की आवश्यकता है जो केवल integers को कभी भी चुना जा सके।जावाएफएक्स स्लाइडर पूर्णांक केवल

मुझे पता है कि मैं snapToTicks का उपयोग कर सकता हूं, लेकिन "knob" खींचते समय, यह अभी भी non-integer मान का प्रतिनिधित्व कर सकता है। मैं इससे छुटकारा पाना चाहता हूं। यह उससे जुड़े अन्य घटकों को गड़बड़ कर देता है।

असल में मुझे Swing's JSlider जैसे कुछ चाहिए, लेकिन JavaFx के साथ। क्या यह संभव है? मैं खोज रहा हूं लेकिन मुझे कुछ भी नहीं मिला।

उत्तर

8

आप बस Slider की valueProperty करने के लिए एक श्रोता जोड़ सकते हैं और फिर आप नए Number मूल्य की integer value सेट कर सकते हैं या तो:

slider.valueProperty().addListener((obs, oldval, newVal) -> 
    slider.setValue(newVal.intValue())); 

या वैकल्पिक रूप से आप Math.round का उपयोग कर गोलाई पूर्णांक का उपयोग कर सकते हैं:

slider.valueProperty().addListener((obs, oldval, newVal) -> 
    slider.setValue(Math.round(newVal.doubleValue()))); 
+0

यह एक बहुत अच्छा विचार है, मुझे बस गोल करना पसंद नहीं है (कारण के लिए SkyWalker पर मेरी टिप्पणी देखें)। मैं अभी भी इसका उपयोग कर सकता हूं। –

+0

आप '((int) Math.round (newVal.doubleValue()) जैसे पूर्णांक राउंडिंग का भी उपयोग कर सकते हैं) '। दोनों दृष्टिकोण सिर्फ पूर्णांक मानों के बीच "घुंडी" रखने की अनुमति नहीं देते हैं। – DVarga

+0

वह ध्वनि तरीका बेहतर है, हालांकि मैं अभी भी जानना चाहता हूं कि कोई और वैध तरीका है या नहीं। –

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