2012-08-04 16 views
5

ठीक है, मैं एक जेटीबल के पहले कॉलम से सभी डेटा प्राप्त करना चाहता हूं। हालांकि मैं सबसे अच्छा तरीका इसे ArrayList में खींच रहा हूं, इसलिए मैंने एक बनाया।जेटीबल से डेटा कैसे प्राप्त करें?

static DefaultTableModel model = new javax.swing.table.DefaultTableModel(); 
f.data.setModel(model); //f.data is the JTable 

public static final void CalculateTotal(){ 
    ArrayList<String> numdata = new ArrayList<String>(); 

    for(int count = 1; count <= model.getRowCount(); count++){ 
     numdata.add(model.getValueAt(count, 1).toString()); 

    } 
    System.out.println(numdata); 
} 

यह मैं एक NullPointerException (क्यू चिल्लाती) देता है: मैं भी एक TableModel का एक उदाहरण बना दिया। मैं क्या गलत कर रहा हूं?

+0

'स्थिर डिफ़ॉल्टTableModel मॉडल'' स्थिर 'कीवर्ड हटाएं। जो कुछ भी आप इसे हल करने का प्रयास कर रहे थे, सबसे अधिक संभावना है कि बेहतर तरीके से हल किया जाए। –

+0

जब एक शून्य सूचक फेंक दिया जाता है, तो यह आपको बताएगा कि कौन सी रेखा संख्या अपवाद को फेंक दिया गया था। क्या आप कृपया अपने कोड पर एक टिप्पणी जोड़ सकते हैं जो उस रेखा को इंगित करता है जो शून्य सूचक अपवाद फेंकता है? (किसी बिंदु पर इसे आपके कोड पर वापस आना पड़ता है - यह स्टैक ट्रेस में पहला नहीं हो सकता है) –

उत्तर

7

मैं अच्छी तरह से उन वर्गों पता नहीं है, लेकिन मुझे लगता है कि अगर आप शून्य से गिनती करना होगा:

for (int count = 0; count < model.getRowCount(); count++){ 
    numdata.add(model.getValueAt(count, 0).toString()); 
} 

जावा में, यह में सबसे सी-तरह जैसे 0 (से गिनती करने के लिए हमेशा की तरह है भाषाएं) ...

+0

जो एक नलपोइंटर देता है क्योंकि 0'th पंक्ति – Primm

+0

कोई वास्तव में 1 से गिनती नहीं है ?? हम्म ... और क्या कोई कॉलम 1 है? –

+0

2 कॉलम वास्तव में – Primm

2

यदि आप SSCCE पोस्ट कर सकते हैं तो यह सबसे अच्छा है जो मॉडल प्रारंभिकता और डेटा के साथ इसकी जनसंख्या दिखाता है। अपवाद के विवरण भी शामिल करें क्योंकि समस्या के लिए कई स्रोत हो सकते हैं।

import java.util.ArrayList; 
import java.util.List; 

import javax.swing.table.DefaultTableModel; 

public class TestModel { 
    public static void main(String s[]) { 
     DefaultTableModel model = new javax.swing.table.DefaultTableModel();  

     model.addColumn("Col1"); 
     model.addColumn("Col2"); 

     model.addRow(new Object[]{"1", "v2"}); 
     model.addRow(new Object[]{"2", "v2"}); 

     List<String> numdata = new ArrayList<String>(); 
     for (int count = 0; count < model.getRowCount(); count++){ 
       numdata.add(model.getValueAt(count, 0).toString()); 
     } 

     System.out.println(numdata); 
    } 
} 

परिणाम है::

यहाँ एक डेमो @CedricReichenbach सुधार पर आधारित है

[1, 2] 
1

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

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

  • कोई संबंधित समस्या नहीं^_^