2012-08-04 7 views
5

OK, JTable의 첫 번째 열에서 모든 데이터를 가져오고 싶습니다. 나는 최선의 방법이 ArrayList에 그것을 당길 것이지만, 나는 그것을 만들었다.JTable에서 데이터를 가져 오는 방법?

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

'static DefaultTableModel model''static' 키워드를 제거하십시오. 당신이 그것을 사용하여 해결하려고했던 것은 무엇이든, 다른 방법으로 가장 잘 해결 될 것입니다. –

+0

null 포인터가 던져지면 예외가 발생한 행 번호를 정확히 알려줍니다. null 포인터 예외를 throw하는 행을 나타내는 주석을 코드에 추가 할 수 있습니까? (어떤 점에서 코드로 되돌아 와야합니다 - 스택 추적의 첫 번째 코드가 아닐 수도 있습니다) –

답변

7

내가 아니라 그 클래스를 모르겠지만, 난 당신이 0에서 계산해야합니다 거라 생각 : 자바에서

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

를, 대부분 C와 같은처럼 0 (에서 계산하는 것이 일반적이다 언어) ...

+0

0 번째 행이 없으므로 NullPointer를 제공합니다. – 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

나도 알아,하지만 실제로하는 아주 쉬운 문제 풀다. 읽을 코드의 테이블 자체에 항목이 없기 때문에 코드를 읽는 중에 오류가 발생합니다. 표를 채우고 코드를 다시 실행하십시오. 문제는 이전에 해결되었을 수도 있지만 게시 한 코드에서 테이블에 무엇이 들어 있는지 분명하지 않았습니다.

관련 문제