【发布时间】:2013-08-19 19:38:48
【问题描述】:
我正在使用 JFace 向导,我想在 Next、Back、Finish 和 Cancel 按钮上设置我自己的文本。我发现只有非常古老的建议在今天完全没用。我还找到了一些使用外部 jar 文件的解决方案,但我真的不想将整个库添加到项目中,仅用于在 4 个按钮上设置文本...
有什么合理的解决办法吗?
提前致谢
【问题讨论】:
我正在使用 JFace 向导,我想在 Next、Back、Finish 和 Cancel 按钮上设置我自己的文本。我发现只有非常古老的建议在今天完全没用。我还找到了一些使用外部 jar 文件的解决方案,但我真的不想将整个库添加到项目中,仅用于在 4 个按钮上设置文本...
有什么合理的解决办法吗?
提前致谢
【问题讨论】:
经过大量的寻找和尝试,我不得不说没有这样的方法。有一些残酷的解决方案,但与它们相比,在项目中添加一个 jar 文件要容易得多。
我会引用最适合我的解决方案:
您需要从这里下载语言包:
http://archive.eclipse.org/eclipse/downloads/drops/L-3.2.1_Language_Packs-200609210945/index.php
NLpack2-eclipse-SDK-3.2.1-gtk.zip 在我使用 Eclipse 时为我工作 3.7.2.
提取 org.eclipse.jface.nl2_3.2.1.v200609270227.jar(或其他 nl 您的语言)从存档中添加到您的项目中。这将是 自动使用。
这不会让您在按钮上设置文本,但至少可以将文本翻译成您的语言。
【讨论】:
看到这个post。似乎是您问题的答案。 它基本上说使用 WizardDialog 类创建一个对话框。使用您选择的实现创建一个从 Wizard 继承的类,然后执行以下操作:
WizardDialog wizardDialog = new CustomWizardDialog(shell, new YourWizard());
然后在您的 CustomWizardDialog 中执行以下操作:
public class CustomWizardDialog {
@Override
protected void createButtonsForButtonBar(Composite parent) {
super.createButtonsForButtonBar(parent);
Button finishButton = getButton(IDialogConstants.FINISH_ID);
finishButton.setText("FinishButtonText");
Button cancelButton = getButton(IDialogConstants.CANCEL_ID);
cancelButton.setText("CancelButtonText");
}
}
剩下的就是执行wizardDialog.open()来打开对话框。
【讨论】: