我有一个Swing定制控件,它的功能几乎与JLabel相同。默认情况下,使用辅助技术的人(如屏幕阅读器)无法访问此功能。我正在研究Megamek GitHub Project,并试图找出如何将PMSimpleLabel类与其他对象相关联,如JLabel类的setLabelFor方法中一样。
到目前为止,所采取的方法似乎或多或少地模仿了JLabel的可访问性实现。我不确定这是否是正确的解决方法,后者似乎有一些我不理解的要素。
这可能是一个相当新手的问题,但是我正在尝试通过从事这个特定项目来自学Java,并且在大多数其他方面,它进展得很好。我想知道是否有人对如何解决这个问题有任何见解,还是在JDK文档中没有提供建议。
答案 0 :(得分:0)
该问题在很大程度上归因于自定义组件。 AccessibleJComponent类具有一个备用机制来命名控件,这些控件本来没有可访问的名称,但这是硬编码的,用于查找JLabel而不是自定义标签类。
有一些解决方法,例如修改get / setAccessibleName方法,或切换为使用可访问的描述。
从长远来看,解决方案可能是使用常规的Swing组件