2008-11-17 18 views
13

पर पंक्तियां जोड़ना हमारे पास एक साधारण प्रोजेक्ट है जहां हम सॉकेट से डेटा पढ़ते हैं और हम आने वाले डेटा के साथ एक तालिका को पॉप्युलेट करना चाहते हैं, लेकिन हमें अभी तक बनाई गई JTable ऑब्जेक्ट में पंक्तियां जोड़ने का कोई तरीका नहीं मिल रहा है, हम केवल तालिका के निर्माण समय पर पंक्तियों को जोड़ने के तरीके को पा सकते हैं।एक JTable

क्या JTable पर गतिशील रूप से पंक्तियां जोड़ना संभव है, या डेटा दिखाने के इस तरीके से निपटने के लिए एक बेहतर वैकल्पिक वस्तु है?

संपादित करें: आपके उत्तरों के लिए बहुत बहुत धन्यवाद।

उनमें से तीन बहुत ही आशाजनक दिखते हैं, लेकिन मुझे केवल एक चुनना है और मुझे लगता है कि सबसे अच्छा गिलाउम है।

उत्तर

12

आपको कस्टम TableModel बनाना चाहिए। JTable वास्तव में पंक्तियों को संग्रहीत नहीं करता है, यह हमेशा TableModel पर प्रतिनिधि करता है। इसे लागू करने में आपकी सहायता के लिए, आपको AbstractTableModel का उपयोग करना चाहिए। हर बार जब आप पंक्तियां जोड़ते हैं तो fireTableRowsInserted() पर कॉल करना न भूलें। बेहतर प्रदर्शन के लिए यदि आप बहुत सारी पंक्तियां जोड़ते हैं, तो अपडेट को बैच करने और एक समय में कई पंक्तियां जोड़ने का प्रयास करें।

6

एक बार जब आप जेटीबल से तत्वों को गतिशील रूप से जोड़ना और निकालना शुरू कर देते हैं, तो आपको वास्तव में टेबलमोडेल का उपयोग शुरू करना होगा।

अधिक जानकारी के लिए Java Tutorial देखें।

11

आप एक JTable के लिए डिफ़ॉल्ट तालिका मॉडल का उपयोग करते हैं तो आप कोड निम्नलिखित

if (dest+1 < table.getRowCount()-1) 
    ((DefaultTableModel) table.getModel()).insertRow(dest+1, getValuesForNewRow()); 
    else 
    ((DefaultTableModel) table.getModel()).addRow(getValuesForNewRow()); 
+7

यह सिर्फ यह JTable निर्माता को पार करने से पहले DefaultTableModel की पकड़ रखने के लिए सबसे अच्छा है के साथ पंक्तियां जोड़ सकते हैं। फिर आपको JTable को छूने या किसी कास्टिंग करने की आवश्यकता नहीं है। –