2012-03-22 10 views
5

मुझे केवल 3 पंक्तियों को दिखाने के लिए एक तालिका की आवश्यकता है जो डीबी से शीर्ष 3 बिक्री उत्पादों को प्राप्त करें। तालिका तैयार है, लेकिन 3 पंक्तियों को छोड़कर, तालिका का एक बड़ा हिस्सा व्यावहारिक रूप से खाली है। मैं 3 पंक्तियों की ऊंचाई से मेल खाने के लिए इस स्क्रोलपैन की ऊंचाई कैसे सेट कर सकता हूं?JScrollPane को पंक्तियों की केवल एक विशिष्ट मात्रा दिखाने के लिए कैसे सेट करें

समाधान:

table.setPreferredScrollableViewportSize(table.getPreferredSize()); 

उत्तर

8

यह JTable के स्क्रॉल कार्यान्वयन का एक मोड़ है: यह एक मनमाना तय prefScrollable आकार तय करता है।

आप तालिका के preferredSize का ही उपयोग करने के लिए Scrollpane बनाने के लिए यह शून्य:

table.setPreferredScrollableViewportSize (शून्य);

संपादित

outch, @vedran, सही है कि हमेशा कोर layoutManagers साथ एक कोर तालिका में काम नहीं कर रहा है (यह भ्रम की स्थिति के लिए एक nice hack in another question :) खेद था। यहाँ उसकी टिप्पणी को कॉपी करना: हालांकि हार्ड-कोड आकार के बारे में सभी सामान्य bewares यहाँ भी लागू

table.setPreferredScrollableViewportSize(table.getPreferredSize()); 

, एक व्यवहार्य विकल्प है।

एक अच्छी तरह से व्यवहार किया गया जेटीबल एक अधिक उचित getPreferredScrollableViewportSize लागू करेगा, f.i सामग्री के संदर्भ में इसकी गणना करता है। JXTable (जो सबसे अच्छा व्यवहार तालिका है, मुझे पक्षपाती :-), तो आप सिर्फ एक सूची के रूप में, दृश्य पंक्तियां के मामले में वरी सेट कर सकते हैं:

xtable.setVisualRowCount(3); 
+0

+1, मुझे लगता है कि आप इसे मेरे बेहतर हो गया है दोबारा :-), लेकिन इसे शून्य पर सेट नहीं करेगा, पूरे 'JTable' को दृश्य से मिटा देगा? –

+0

@ गगनदीपबाली संख्या। कॉलम नाम अभी भी दिखाई देंगे :) – vedran

+0

+1, कृपया मेरा बेवकूफ सवाल है, क्या पंक्तियों के मामले में 'xxxViewportSize (table.getPreferredSize) betweens में अंतर है और आपकी' XxxViewportSize (null) 'पंक्तियों के मामले में समान ऊंचाई नहीं है – mKorbel

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