是否可以将完成按钮文本更改为完成向导?

时间:2014-05-06 10:50:46

标签: java eclipse eclipse-plugin swt

我在eclipse插件中创建了一个带有一些页面的自定义向导。通过扩展WizardPage创建页面。该向导具有Next back Finish和Cancel按钮,一切正常 现在,我想将Finish按钮的名称/文本更改为Done。在eclipse中可以这样做吗?或者我需要自己提供所有按钮,即使这样也没关系。

3 个答案:

答案 0 :(得分:4)

这应该做:

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

    Button finish = getButton(IDialogConstants.FINISH_ID)
    finish.setText("Done");
    setButtonLayoutData(finish);
}

Here是一个相关的问题。

答案 1 :(得分:2)

所以这就是我使用向导的方式:

MyCustomWizard wizard = new MyCustomWizard ("title");
WizardDialog wizardDialog = new WizardDialog(Display.getDefault().getActiveShell(), wizard);
wizardDialog.open();

现在我创建了一个新类,MyCustomDialog扩展了WizardDialog:

public class MyCustomDialog extends WizardDialog {

public MyCustomDialog(Shell parentShell, IWizard newWizard) {
    super(parentShell, newWizard);
}

@Override
public void createButtonsForButtonBar(Composite parent){
    super.createButtonsForButtonBar(parent);
    Button finishButton = getButton(IDialogConstants.FINISH_ID);
    finishButton.setText(windowTitle);
}
}

现在我将创建向导和向导对话框的代码更改为:

MyCustomWizard wizard = new MyCustomWizard ("title");
MyCustomDialog wizardDialog = new MyCustomDialog(Display.getDefault().getActiveShell(), wizard);
wizardDialog.open();

希望对某人有用! :) 感谢帮助@ greg-449和@Baz

答案 2 :(得分:0)

还有一种方法可以更改任何按钮的标签。您可以将WizardDialog类的createButton覆盖为:

@Override
protected Button createButton(Composite parent, int id, String label,
            boolean defaultButton) {
        if (id == IDialogConstants.FINISH_ID) {
            return super.createButton(parent, id,
                    "Done", defaultButton);
        }
        return super.createButton(parent, id, label, defaultButton);
}