2011-04-06 15 views
7

मेरे पास एक जेटीबल है और मैं JTextfield से एक फ़िल्टर करना चाहता हूं लेकिन केवल एक कॉलम के आधार पर परिणाम फ़िल्टर करें और सभी कॉलम खोजने के लिए नहीं।फ़िल्टर जेटीबल केवल एक कॉलम

मैं अपने JTable है मैं फ़िल्टर कर सकते हैं, लेकिन मेरे फिल्टर को फ़िल्टर और मेज मैं एक स्तंभ के लिए इसे प्रतिबंधित करना चाहते हैं के हर स्तंभ खोज करेंगे

यह किया जा सकता है?

उत्तर

12

टेक्स्ट फ़ील्ड दस्तावेज़ में परिवर्तन करने के लिए सुनो और उचित rowFilter स्तंभ तक ही सीमित आप फ़िल्टर करना चाहते सेट:

// on document change 
RowFilter rowFilter = RowFilter.regexFilter(textField.getText(), myColumn); 
table.getRowSorter().setRowFilter(rowFilter); 

(टाइप कास्ट और लोप खाली पाठ फ़ील्ड के खिलाफ गार्ड)

+0

बहुत बहुत धन्यवाद, मैंने जो किया है उसे हल किया गया हल हल किया गया – CMP

+0

वोट देना पसंद नहीं है अभी तक वोट करने के लिए कम किया गया :(:(:(लेकिन फिर से धन्यवाद – CMP

+0

@ user692808 आप उत्तर स्वीकार कर सकते हैं, है ना? आपकी प्रतिष्ठा के साथ-साथ मेरा भी बढ़ जाएगा :-) – kleopatra

1

पृष्ठभूमि में सभी पंक्तियों (या समर्थन डेटा) की एक मास्टर प्रति रखें।

खोज करते समय, टेक्स्ट फ़ील्ड से खोज मानदंड लें और केवल मानदंड से मेल खाने वाली वस्तुओं को जोड़कर तालिका मॉडल का पुनर्निर्माण करें। यदि टेक्स्ट फ़ील्ड खाली है तो सभी पंक्तियां जोड़ें।

+0

अच्छा (हालांकि नहीं सही पाने के लिए तुच्छ) pre1.6 के लिए, 1.6 के बाद से नहीं: मेरा सामान्य नियम हमेशा किसी भी ढांचे द्वारा उपलब्ध सभी समर्थन का उपयोग करना है, शेष पर्याप्त कठिन है ;-) – kleopatra

1

आप इस http://java-sl.com/envelope.html जैसे लिफाफा तालिका मॉडल का विस्तार कर सकते हैं और केवल आवश्यक पंक्तियां छोड़ सकते हैं।

+1

अभी भी jdk1.5 (पत्थर-) आयु में; -) – kleopatra

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