繁体   English   中英

如何在SWT MessageDialog或MessageBox中将焦点设置为文本而不是按钮?

[英]How can I set focus on text instead of button in SWT MessageDialog or MessageBox?

我目前正在为盲人制定程序。 在我的程序中,我有几个使用SWT MessageDialogMessageBox实现的对话框。

这对于使用屏幕阅读软件的有视力的人或盲人来说效果很好。 但是使用可刷新盲文显示(仅文本,只有一行40个字符)的盲人在对话框中读取文本消息时遇到问题,因为对话框的焦点在按钮上,因此可刷新盲文显示会显示盲文按钮。 盲人必须向上滚动才能找到短信。

有时滚动非常困难,以至于他们不得不抱怨。 如果焦点在文本消息上,那将更好,然后他们可以在阅读文本时向下滚动,然后在结尾处是按钮文本。

如何使用SWT MessageDialogMessageBox类管理焦点在文本消息上?

我不想创建自己的MessageDialog类,因为我已经使用了SWT库的几个选项。

除了名称中的“消息”部分外, MessageBoxMessageDialog根本不同。

MessageBox是SWT的一部分,并使用本机平台的组件来显示对话框,因此其行为不能由应用程序代码更改。

MessageDialog由JFace提供,可以自定义。 如果确实需要更改默认的焦点行为,则应仅使用MessageDialog

为了使显示消息的标签更加集中,您可以像这样重写create()

class MyMessageDialog extends MessageDialog {
  @Override
  public void create() {
    super.create();
    if( usingBraille ) {
      messageLabel.forceFocus();
    }
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM