2013-03-06 3 views
2

하나의 확인 버튼 (푸시 버튼)이 생성되었습니다.SWT 버튼과 그 동작을 어떻게 동적으로 생성합니까?

사용자 입력에 따라 1에서 10 개의 SWT 버튼 (체크 박스)을 동적으로 만들고 싶습니다.

만드는 방법은 무엇입니까?

확인 버튼을 클릭하면 모든 체크 박스 버튼을 어떻게 표시 할 것인가? 이 버튼의 선택 상태를 출력합니다

Set<String> Groups = getData(Contents); 
for(String group : contentGroups) { 

contentButton = new Button(fComposite, SWT.CHECK); 

    // is this right way to create dynamic buttons? 

    contentButton.setText(group); 

} 

okButton = new Button(lowComposite, SWT.PUSH); 

okButton.addSelectionListener(new SelectionListener(){ 

    @Override 
    public void widgetSelected(SelectionEvent e){ 

     //Here how to get the selection status of contentButtons?  
    } 
} 
+0

당신은의'Button's을 저장해야하는' final' 또는'static'' Listener'에 접근 할 수 있고 Listener에서 반복 할 수 있습니다 – Baz

+0

그러나 저장하고 반복하는 방법은 무엇입니까? 모든 contentButtons의 변수 이름을 가져 오는 방법? ok 버튼과 확인란은 여러 컴포지트에서 만들어집니다. 제발 좀 스 니펫을주세요. – yash

답변

4

:

내가 함께 노력하고 아래의 스 니펫을 찾아주세요

Set<String> Groups = getData(Contents); 

final List<Button> buttons = new ArrayList<Button>(); 

for(String group : contentGroups) 
{ 
    Button newButton = new Button(fComposite, SWT.CHECK); 
    newButton.setText(group); 

    // save the button 
    buttons.add(newButton); 
} 

Button okButton = new Button(lowComposite, SWT.PUSH); 

okButton.addListener(SWT.Selection, new Listener() 
{ 
    @Override 
    public void handleEvent(Event e) 
    { 
     // iterate over saved buttons 
     for(Button button : buttons) 
     { 
      System.out.println(button.getText() + ": " + button.getSelection()); 
     }  
    } 
} 
+0

스 니펫에 감사드립니다. 그것은 나를 위해 작동합니다 : – yash

+0

했어요. 그것의 보여주는 투표까지 15 평판이 필요합니다 ... – yash

+0

@yash 이제 15있다;) – Baz

관련 문제