我目前正在为盲人开发一个程序。在我的程序中,我有几个使用 SWT MessageDialog
或 MessageBox
实现的对话框。
这对于使用屏幕阅读软件的视力正常的人或盲人来说效果很好。但是,使用可刷新盲文显示器(仅包含文本且只有一行 40 个字符)的盲人在阅读对话框中的文本消息时会遇到问题,因为对话框的焦点位于按钮上,因此可刷新盲文显示器会显示以下文本:按钮。盲人必须向上滚动才能找到短信。
有时滚动太难了,他们不得不提示这一点。如果焦点位于文本消息上,然后他们可以在阅读文本时向下滚动,最后是按钮文本,那就更好了。
如何使用 SWT MessageDialog
或 MessageBox
类来管理文本消息的焦点?
我不想创建自己的 MessageDialog
类,因为我已经使用了 SWT
库的多个选项。
最佳答案
除了名称中的“Message”部分之外,MessageBox
和 MessageDialog
本质上是不同的。
MessageBox
是 SWT 的一部分,使用 native 平台的组件来显示对话框,因此应用程序代码无法更改其行为。
MessageDialog
由JFace提供,可以自定义。如果您确实需要更改默认焦点行为,则应仅使用 MessageDialog
。
要将焦点集中到显示消息的标签上,您可以像这样重写create()
:
class MyMessageDialog extends MessageDialog {
@Override
public void create() {
super.create();
if( usingBraille ) {
messageLabel.forceFocus();
}
}
}
关于java - 如何将焦点设置在 SWT MessageDialog 或 MessageBox 中的文本而不是按钮上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39162848/