JFace / SWT: изменить метки для кнопок в InputDialog - PullRequest
8 голосов
/ 11 августа 2010

Я хочу создать InputDialog с пользовательскими метками для кнопок OK / Отмена. Я использую org.eclipse.jface.dialogs.InputDialog .

Я попытался переопределить метод создания кнопки:

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

и это работает, но размер кнопок не изменяется (и результаты пользовательского текста обрезаются).

Полагаю, здесь уже слишком поздно устанавливать текст, потому что менеджер раскладки уже определил размер кнопки, и никто не может сказать, чтобы он пересчитал ... Это так?

Какой правильный путь?

Ответы [ 2 ]

16 голосов
/ 13 августа 2010

попробуйте

 @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);
 }
2 голосов
/ 13 августа 2010

попробуйте таким образом ..

@Override
protected void createButtonsForButtonBar(Composite parent) {

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

}
...