0

我目前正在为盲人开发一个程序。在我的程序中,我有几个使用 SWTMessageDialogMessageBox.

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

有时滚动是如此困难,以至于他们不得不抱怨这一点。如果焦点在文本消息上会更好,然后他们可以在阅读文本时向下滚动,最后是按钮文本。

如何使用 SWTMessageDialogMessageBox类来管理文本消息的焦点?

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

4

1 回答 1

1

除了他们名字中的'Message'部分,MessageBoxMessageDialog根本不同。

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

MessageDialogJFace 提供,可以自定义。如果你真的需要改变默认的焦点行为,你应该MessageDialog只使用。

要将焦点放在显示消息的标签上,您可以create()像这样覆盖:

class MyMessageDialog extends MessageDialog {
  @Override
  public void create() {
    super.create();
    if( usingBraille ) {
      messageLabel.forceFocus();
    }
  }
}
于 2016-08-26T11:19:35.897 回答