JFace / SWT:更改InputDialog中按钮的标签

时间:2010-08-11 15:19:43

标签: swt eclipse-rcp jface

我想创建一个带有OK / Cancel按钮的自定义标签的InputDialog。我正在使用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 个答案:

答案 0 :(得分: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);
 }

答案 1 :(得分:2)

以这种方式尝试..

@Override
protected void createButtonsForButtonBar(Composite parent) {

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

}