2013-02-15 12 views
6

पर गतिशील रूप से JTable जोड़ना मेरे पास एक सारणी है जिसे मैं पॉप्युलेट करना चाहता हूं जब उपयोगकर्ता मुझे ऐसा करने के लिए संकेत देता है। समस्या यह है कि, मैं उम्मीद नहीं कर सकता कि टेबल कितनी पंक्तियां समाप्त हो जाएगी। मेरी पैनल के लिए निर्माता जहां तालिका प्रदर्शित किया जाएगा में मैंJSCrollPane

// add empty scrollPane to JPanel which will later hold table 
       scrollPane = new JScrollPane(); 
    add(scrollPane); 

है इस वर्ग के लिए एक विधि है कि, टेबल बुलाया जाएगा जब मैं अंत में टेबल

public void displayTable(String[] columnNames, String[][] dataValues) 
{ 
    table = new JTable(dataValues, columnNames); 
    table.setPreferredScrollableViewportSize(new Dimension(300, 80)); 
    table.setFillsViewportHeight(true); 
    scrollPane.add(table); 

    this.setVisible(true); 
    scrollPane.repaint(); 

} 

समस्या है प्रदर्शित करने के लिए चाहते हैं कभी प्रदर्शित नहीं करता है। मैं सिर्फ एक रूपरेखा देखता हूं जहां स्क्रॉलपैन के अंदर कोई टेबल नहीं है। टेबल प्रदर्शित क्यों नहीं है और मैं इसे कैसे ठीक कर सकता हूं?

+0

जल्द से जल्द बेहतर सहायता के लिए, कृपया एक [एसएससीसीई] (http://sscce.org) शामिल करें। – mre

+0

मैंने सोचा कि यह छोटा और बिंदु था। क्या मेरा सवाल स्पष्ट नहीं था? – Matt

+0

स्विंग की बात आने पर कई बारीकियां हैं। जितनी अधिक जानकारी आप हमें देते हैं, उतनी ही आसान है कि हम आपकी मदद करें। अन्यथा, हम सब अंधेरे में शूटिंग छोड़ रहे हैं, हालांकि कभी-कभी हम भाग्यशाली हो जाते हैं। – mre

उत्तर

15

आप नहीं jScrollPane लिए लेकिन इसके JViewport के घटक जोड़ने चाहिए:

scrollPane.getViewport().add (table); 
+0

वह था। धन्यवाद! – Matt

+1

वैकल्पिक रूप से आप 'JViewport.setView (घटक)' का उपयोग कर सकते हैं, लेकिन यह वही काम करेगा। – MadProgrammer

+0

यह आकर्षण की तरह काम किया। मैं जो कर रहा था वह scrollPane.add (टेबल) था, इसने इसे हल किया। – yuva

5

बजाय jScrollPane करने के लिए तालिका जोड़ने Scrollpane की एक व्यूपोर्ट बनाएं और फिर तालिका के रूप में अपनी दृश्य सेट। का उपयोग कर निम्नलिखित बजाय कोड:
scrollPane.setViewportView(table)

2

आमतौर पर, आप JTable और JScrollPane एक साथ बनाते हैं, भले ही आप अभी तक कोई मान हैं।

एक गतिशील तालिका के लिए DefaultTableModel, या TableModel का उपयोग करना बेहतर है।

+0

+1, – mKorbel

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