2010-08-11 3 views
8

확인/취소 단추에 대한 사용자 지정 레이블을 사용하여 InputDialog를 만들고 싶습니다. 나는 org.eclipse.jface.dialogs.InputDialog을 사용하고 있습니다.JFace/SWT : InputDialog의 단추 레이블 변경

@Override 
    protected void createButtonsForButtonBar(Composite parent) { 
    super.createButtonsForButtonBar(parent); 
    getButton(IDialogConstants.OK_ID).setText(myOkText); 
    getButton(IDialogConstants.CANCEL_ID).setText(myCancelText); 
    } 

그것은 작동하지만 버튼은 크기가 조정되지 않습니다 (및 사용자 정의 텍스트 결과가 잘립니다) :

나는 버튼 생성 방법을 재정의했습니다.

레이아웃 관리자가 이미 버튼 크기를 결정했기 때문에 텍스트를 여기에 설정하기에는 너무 늦었습니다. 다시 계산할 수는 없으므로 ... 그렇습니까?

올바른 방법은 무엇입니까?

답변

16

@Override 
    protected void createButtonsForButtonBar(Composite parent) { 
    super.createButtonsForButtonBar(parent); 

    Button ok = getButton(IDialogConstants.OK_ID); 
    ok.setText(myOkText); 
    setButtonLayoutData(ok); 

    Button cancel = getButton(IDialogConstants.CANCEL_ID); 
    cancel.setText(myCancelText); 
    setButtonLayoutData(cancel); 
} 
+0

저는 일합니다. 그'setButtonLayoutData' 메쏘드를 놓쳤습니다 ... 고마워요! – leonbloy

2
이런 식으로

시도 ..

@Override 
protected void createButtonsForButtonBar(Composite parent) { 

    Button button = createButton(parent,9999, "HEllo", true); 
    Button button2 = createButton(parent,9999, "HEllo232323sdsdsdsd", false); 

} 
+0

감사를 시도,하지만 난 크레타 새로운 버튼으로 원하는 didnt는하지만, 단지 기본 미리 정해진 사람들의 라벨 (OK/취소 변경). – leonbloy