JList

2010-04-23 13 views
5

में अंतिम आइटम पर प्रोग्रामेटिक रूप से स्क्रॉल करने में असमर्थ मेरे पास एक JSLrollPane के अंदर एक जेएलिस्ट घोंसला है। जब मैं जेएलिस्ट में आइटम जोड़ता हूं, तो मैं चाहता हूं कि JSCrollPane स्वचालित रूप से जेएलिस्ट के नीचे स्क्रॉल करें ताकि अंतिम आइटम दिखाई दे। ऐसा करने के लिए, मैं निम्नलिखित कोड है:JList

getWordListScroller().getVerticalScrollBar().getModel().setValue(getWordListScroller().getVerticalScrollBar().getModel().getMaximum()); 

जब मैं इस कोड का उपयोग करने का प्रयास करें, हालांकि, jScrollPane केवल पिछले आइटम से पीछे नहीं करने के लिए स्क्रॉल, दृश्य से बाहर पिछले आइटम छोड़कर। यह वांछनीय किसी भी तरह से नहीं है। मैंने अधिकतम() प्राप्त करने के लिए मूल्य जोड़ने का प्रयास किया है, लेकिन समस्या बनी रहती है।

मैं JSCrollPane को बहुत नीचे स्क्रॉल करने के लिए कैसे प्राप्त कर सकता हूं?

उत्तर

14

JList#ensureIndexIsVisible() विधि का उपयोग कर प्रयास करें:

JList wordList = getWordListScroller(); 
int lastIndex = wordList.getModel().getSize() - 1; 
if (lastIndex >= 0) { 
    wordList.ensureIndexIsVisible(lastIndex); 
} 
+0

मुझे अभी पता चला है कि यह और यह खूबसूरती से काम करता है। –

+2

अच्छा। Btw। याद रखने की बात (क्योंकि, स्क्रॉल को मजबूर करना सामग्री बदलने से संबंधित है) http://stackoverflow.com/a/7114267/210342 – greenoldman

+0

यह काम करता है! धन्यवाद। – Horizon

0

इस जवाब मेरे लिए काम नहीं था, मैं इस पाया: http://forums.sun.com/thread.jspa?threadID=623669 जो पूरी तरह से काम करता है ('inopia' द्वारा लिखित पोस्ट)।

जैसा कि वह कहता है: "समस्या यह है कि सूचीकरण, जेएलिस्ट और जेएसक्रोलपैन दोनों के बाद आग लगने वाली घटना को ढूंढना मुश्किल हो सकता है।"

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