我有一个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按钮上。
然而,我得到的是:
焦点在于我预期的取消按钮。但由于某种原因,MessageDialog切换了按钮的顺序,因此OK现在是第一个按钮而Cancel是第二个按钮。
有没有办法改变按钮的顺序,所以我先取消然后确定,就像在默认确认对话框中一样,仍然把焦点放在取消上?