2014-12-09 2 views
0

나는 동적으로 열을 vaadin 테이블에 추가하는 방법을 찾고 있습니다. 테이블 열을 동적으로 추가 하시겠습니까?

나는 노력이 :

private Button createAddColumnButton() { 
    Button addProductButton = new Button("Add column"); 

    addProductButton.addClickListener(new ClickListener() { 

     public void buttonClick(ClickEvent event) { 
      count = count++; 
      table.addGeneratedColumn("Column "+count, new ColumnGenerator() { 

       @Override 
       public Object generateCell(final Table source, Object itemId, Object columnId) { 
        String x = "some stuff"; 
        return x; 
       } 
      }); 
     } 
    }); 
    return addProductButton; 
} 

나는 동일한 ID로 두 개의 열을 가질 수 없다는 오류를 받았다 전에이 버튼은, 저를 동적으로 열을 추가하지만 단지 한 열을 허용했다. ID가 고유하도록 ID를 변경하려면 어떻게해야합니까 & 많은 열을 추가합니까?

+0

나는 열 생성기를 구현하는 클래스를 생성해야하고 그 ID를 임의의 int로 설정해야한다고 생각한다. 아마도...? –

+1

"열 ID"는'addGeneratedColumn()'에 대한 첫 번째 매개 변수이므로 예제에서 고유 한 것처럼 보입니다. 개수가 선언 된 곳은 어디입니까? 다른 곳에서 바뀌 었습니까? 전체 스택 추적을 표시 할 수 있습니까? – geert3

답변

3

TL; DR

간단한 변화 당신의 코드 : WOR하지 않습니다의 할당은

count = count++; 

beacause를의

count = count + 1; 

Explenation

당신이 기대하는대로 k. 다음 코드를 살펴 :

public class HelloStackOverflow { 
    public static void main(String[] args) { 
     int count = 0; 
     count = count++; 
     System.out.println(count); 
    } 
} 

를이 표준 출력 0 당신이 코드를 변경하는 경우에도 (가변 카운트 할당은 효과가 없습니다) 경고를 받게됩니다에 인쇄 :

count = ++count; 

더 나은 설명은 here입니다.

+0

그 사실을 알지 못해서 수치 스럽네요 ;-) – geert3

관련 문제