如何在 SWT MessageDialog 或 MessageBox 中将焦点设置为文本而不是按钮?
How can I set focus on text instead of button in SWT MessageDialog or MessageBox?
我目前正在为盲人开发一个程序。在我的程序中,我有几个使用 SWT MessageDialog
或 MessageBox
实现的对话框。
这对于使用屏幕阅读软件的视力正常的人或盲人来说效果很好。但是使用可刷新盲文显示器(纯文本,只有一行 40 个字符)的盲人在阅读对话框中的文本消息时遇到问题,因为对话框的焦点在按钮上,因此可刷新盲文显示器显示文本按钮。盲人必须向上滚动才能找到短信。
有时滚动太难了,他们不得不抱怨。如果焦点在文本消息上就更好了,然后他们可以在阅读文本的过程中向下滚动,最后是按钮文本。
如何使用 SWT MessageDialog
或 MessageBox
class 来管理文本消息的焦点?
我不想创建自己的 MessageDialog
class,因为我已经使用了 SWT
库的多个选项。
除了名称中的 'Message' 部分外,MessageBox
和 MessageDialog
根本不同。
MessageBox
是 SWT 的一部分,使用本机平台的组件来显示对话框,因此应用程序代码无法更改其行为。
MessageDialog
由JFace提供,可以自定义。如果你真的需要改变默认的焦点行为,你应该只使用 MessageDialog
。
要将焦点放在显示消息的标签上,您可以像这样覆盖 create()
:
class MyMessageDialog extends MessageDialog {
@Override
public void create() {
super.create();
if( usingBraille ) {
messageLabel.forceFocus();
}
}
}
我目前正在为盲人开发一个程序。在我的程序中,我有几个使用 SWT MessageDialog
或 MessageBox
实现的对话框。
这对于使用屏幕阅读软件的视力正常的人或盲人来说效果很好。但是使用可刷新盲文显示器(纯文本,只有一行 40 个字符)的盲人在阅读对话框中的文本消息时遇到问题,因为对话框的焦点在按钮上,因此可刷新盲文显示器显示文本按钮。盲人必须向上滚动才能找到短信。
有时滚动太难了,他们不得不抱怨。如果焦点在文本消息上就更好了,然后他们可以在阅读文本的过程中向下滚动,最后是按钮文本。
如何使用 SWT MessageDialog
或 MessageBox
class 来管理文本消息的焦点?
我不想创建自己的 MessageDialog
class,因为我已经使用了 SWT
库的多个选项。
除了名称中的 'Message' 部分外,MessageBox
和 MessageDialog
根本不同。
MessageBox
是 SWT 的一部分,使用本机平台的组件来显示对话框,因此应用程序代码无法更改其行为。
MessageDialog
由JFace提供,可以自定义。如果你真的需要改变默认的焦点行为,你应该只使用 MessageDialog
。
要将焦点放在显示消息的标签上,您可以像这样覆盖 create()
:
class MyMessageDialog extends MessageDialog {
@Override
public void create() {
super.create();
if( usingBraille ) {
messageLabel.forceFocus();
}
}
}