2012-12-05 2 views
4

여기는 제 정의 클래스입니다. 코드를 가져 오는 코드는 포함하지 않았습니다. short and sweet. 개체 작성 중 [] [] 종류가 있습니다.

public class Details() { 
    String name; 
    double price; 
    int quan; 
    double totalValue; 

    public String getName(); 
    public double getPrice(); 
    public int quan(); 
    public double totalValue(); 
} 

내가 가 여기에 비록 반복 할 수 있도록하고 싶습니다 내 테이블 행/열을 만들기 위해 사용하고자하는 세부

ArrayList<Details> myDetails = new ArrayList<Details>(); 

이것은 함수의 내 목록을 유지하는 방법이다 내 세부 테이블 아래에 비슷한 생산하고 있습니다. 좀 장난 내가이 일을하는 방법을 마련하는 관리되지 않는 한 후에 테이블에 대한

dm.setDataVector(getStockTable(), new Object[] { "Name","Price", "Quan", "Total Value" }); 

를 행/열을 설정하고있어 방법이있다

public Object[][] getStockTable() { 
    Object[][] dynamicObject = new Object[][] { 
     { "Name1", "Price1", "Quan1", "TV1" }, 
     { "Name2", "Price2", "Quan2", "TV2" }, 
     { "Name3", "Price3", "Quan3", "TV3" } }; 

    //But how do this by iterating through rather than manually like above^ 
    return dynamicObject; 

} 

. 제발 숟가락으로 대답 해주세요. 제게 해 줄 수있는 방법보다는 이해하는 법을 배우고 싶습니다. Object[][]

+0

'Array' –

+0

는 당신이 좋은 혀에 예 또는 링크를 제공 할 수 있을까 만들려면 다음 필드를 결정하기 위해'Reflection'를 사용할 수 있습니까? – LmC

+0

refletion이 필요하지 않은 경우, 그는 getter를 사용하여 그의 목록을 반복하고 필요에 따라 배열을 만들 수 있습니다. – jlordo

답변

3

Object[]

public Object[] toRow() { 
    return new Object[] { getName(), String.valueOf(getPrice()) /* etc. */ }; 
} 

다음 getStockTable

에서 사람들을 수집 단순히 Object[]의 배열, 그래서 하나의 "행"을 만듭니다 Detail에 메소드를 추가하는 것입니다 할 수있는 OO의 방법입니다
Object[][] tbl = new Object[myDetails.size()][]; 
int row = 0; 
for(Detail d : myDetails) { 
    tbl[row++] = d.toRow(); 
} 
+0

+1, 내 대답보다 훨씬 좋은 코드입니다. – jlordo

+0

좋은 OO 코드, 내가 어떻게 생각하지 않았다는 것을 이해하지 않는다. 좋은 답변 – LmC

2

?

public Object[][] getStockTable() { 
    ArrayList<Details> details = getDatailsList(); 
    Object[][] result = new Object[details.size()][]; 
    for (int i = 0; i < details.size(); i++) { 
     Details detail = details.get(i); 
     Object[] det = new Object[4]; 
     det[0] = detail.getName(); 
     det[1] = detail.getPrice(); 
     det[2] = detail.quan(); 
     det[3] = detail.totalValue(); 
     result[i] = det; 
    } 
    return result; 
} 
+0

좋은 답변, 마침내 필요한 로직을 이해 +1 – LmC