मेरे पास मेरे दृश्य में स्क्रॉलपैन है और इसमें नोड्स की एक श्रृंखला जोड़ना चाहेंगे। सटीक राशि गतिशील होना चाहिए। मैं लेबल नोड्स के साथ अवधारणा का परीक्षण कर रहा हूं और स्क्रॉलपैन (वर्तमान में एक वीबीओक्स) की सामग्री के रूप में सफलतापूर्वक कई लेबल जोड़ सकता हूं।जावाएफएक्स - सही स्क्रॉलिंग दिशा के साथ स्क्रॉलपैन में नोड्स जोड़ना
मेरी समस्या यह पता लग रही है कि उपयोगकर्ता को नोड्स से भरे स्क्रॉलपैन के माध्यम से सामान्य रूप से स्क्रॉल करने की अनुमति कैसे दी जाती है। सामग्री स्क्रॉलबार के साथ गति से मेल खाता है; वह है, जब मैं नीचे स्क्रॉल करता हूं, तो सामग्री नीचे जाती है। मैं स्क्रॉल करता हूं, सामग्री स्क्रॉल हो जाती है। तो अगर मेरे पास 10 लेबल हैं, जिनमें से केवल पांच जिनमें से वर्तमान में दिखाई दे रहे हैं, तो अन्य पांच को देखने के लिए सहज कार्रवाई को स्क्रॉल करना होगा। दुर्भाग्यवश, यह सिर्फ पूरी सामग्री को नीचे ले जाता है, खाली स्थान को ऊपर उजागर करता है और अधिक लेबल छुपाता है।
मैं कुछ नमूना कोड पोस्ट कर सकते हैं कि अगर मदद करता है, लेकिन हमले के मेरी योजना का सार यह है: एक के ऊपर (Y अक्ष में)
ScrollPane sp = new ScrollPane();
VBox content = new VBox();
sp.setContent(content);
for (int i = 0; i < 10; i++)
{
Label label = new Label("Label " + i);
content.setPrefHeight(content.getPrefHeight() + label.getPrefHeight());
content.getChildren().add(label);
}
क्योंकि मैं एक VBox उपयोग करते हैं, लेबल खड़ी दिखती हैं दूसरा, जो मैं चाहता हूं। जैसे-जैसे लेबल जोड़े जाते हैं, स्क्रॉलबार को वीबीओक्स के बढ़ते आकार को प्रतिबिंबित करने की आवश्यकता होती है। मैंने ScrollPane.setVmax()
विधि सहित, काम करने के लिए कुछ दृष्टिकोणों की कोशिश की है, जो ठीक है, लेकिन मुझे अभी भी स्क्रॉल दिशा का मुद्दा गलत दिशा में ले जाने की समस्या है। मैंने मूल्यों को संशोधित करने के लिए EventHandler
और EventFilter
भी कोशिश की है, फिर भी स्क्रॉल की समस्या को हल किए बिना सही दिशा में सामग्री को स्थानांतरित नहीं किया गया है।
उत्तर इतना आसान लगता है, फिर भी यह कोड से घिरा हुआ कई घंटों के बाद भी मुझे बचाना जारी रखता है।
संपादित करें: एक ListView
मेरी समस्या हल का उपयोग करने का
jewelsea के सुझाव। हालांकि, मैं उत्सुक रहता हूं कि ScrollPane
का उपयोग क्यों करना बहुत अच्छा नहीं था। इसके अतिरिक्त, मैंने ListView
कार्यान्वयन के साथ अजीब व्यवहार में भाग लिया है: मैं दृश्य में नया Label
मैन्युअल रूप से जोड़ने के लिए एक बटन का उपयोग करता हूं। प्रत्येक अब और फिर, नया Label
जोड़ने के बाद दृश्य स्थिर हो जाएगा। यह स्क्रॉल स्थिति को अपडेट करने या नए जोड़े गए Label
को प्रदर्शित करने से पहले कुछ सेकंड तक लॉक हो जाता है। मुझे नहीं पता कि ऐसा इसलिए है क्योंकि इस बारे में 20 या तो Label
उदाहरण देखे जा रहे हैं या यदि कुछ और अधिक कपटी खेलना है।
इसे लागू करने के लिए 'ListView' का उपयोग न करने का कोई कारण नहीं है? मुझे लगता है कि यह आपके लिए इस तरह के मुद्दों का ख्याल रख सकता है। – jewelsea
@ जेवेलसे, आपने इसे हल किया! मैं हमेशा आश्चर्यचकित हूं कि इनमें से अधिकतर समस्याएं इतनी बड़ी लगती हैं कि उनका समाधान इतना आसान है। मैं 'ListView