如何更改JFace MessageDialog的按钮顺序?

时间:2015-03-23 15:35:17

标签: java dialog swt eclipse-rcp jface

我有一个RCP应用程序,我需要一个确认对话框。我之前使用过MessageDialog.openConfirm(getShell(), DIALOG_TITLE, DIALOG_MESSAGE),但默认情况下,这会将焦点设置在“确定”按钮上。我想要的是在取消按钮上设置默认焦点。

所以我尝试了这个answer的方式,并且这样做了:

MessageDialog dialog = new MessageDialog(getShell(), DIALOG_TITLE, null, 
                DIALOG_MESSAGE, MessageDialog.CONFIRM, 
                new String[] { "Cancel", "OK" }, 0);

所以我希望Dialog首先显示Cancel按钮,然后是OK按钮,并将焦点设置在索引0处的Cancel按钮上。

然而,我得到的是:

Confirmation Dialog

焦点在于我预期的取消按钮。但由于某种原因,MessageDialog切换了按钮的顺序,因此OK现在是第一个按钮而Cancel是第二个按钮。

有没有办法改变按钮的顺序,所以我先取消然后确定,就像在默认确认对话框中一样,仍然把焦点放在取消上?

0 个答案:

没有答案