2010-08-11 2 views
8

Я хочу создать InputDialog с пользовательскими ярлыками для кнопок OK/Cancel. Я использую 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

Спасибо, но я не хотел КРИТ новые кнопки, а просто изменить метки по умолчанию предопределены те на (OK/ОТМЕНА). – leonbloy

Смежные вопросы