快速业务通道

为可访问性编码: 用JFC/Swing将可访问性构建到您的Java应用 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
        new AccessibleRelation(AccessibleRelation.MEMBER_OF, group);       ars.add(ar);     }     return group; }

对助记符的支持

一些 Swing 组件不直接支持助记符。正如我先前讨论的,这些 Swing 通过允许 JLabel 来标记组件以弥补这一不足。可访问性工具箱提供了助手方法来辅助对组件作标 记。清单 12 展示了作用于 JTextField 组件的助手方法:

清单 12. 对组件作标记的助手方法

JTextField setupLabelledField(      JPanel lp, JPanel fp, String name, int vKey) {     JLabel l = new JLabel("", JLabel.RIGHT);     AccessibleUtils.setAccessibleValues(resourceBundle, (Accessible)l,       new AccessibleUtils.AccessibleValues(         idGen.nextId("label"),         name,         name + " label",         "=tt",         AccessibleUtils.formatText(resourceBundle,           "Identifies the {0} field", name),         vKey));     lp.add(l);     JTextField tf = new JTextField("", 40);     AccessibleUtils.setAccessibleValues(resourceBundle, (Accessible)tf,       new AccessibleUtils.AccessibleValues(         idGen.nextId("textField"),         null,         name + " entry field",         "=tt",         AccessibleUtils.formatText(resourceBundle,           "Enter the value for {0}", name)));     fp.add(tf);     AccessibleUtils.setLabelRelationship(l, tf);     return tf; }

为可访问性编码: 用JFC/Swing将可访问性构建到您的Java应用(10)

时间:2011-04-03 IBM Barry A. Feigenbaum

尽管并未显示,但是请注意也应该用 AccessibleUtils.formatText 处理 name + "label" 和 name + "entry field" 子句,以充分地支持国际化转 换。

现在就在清单 13 中查阅方法的细节:

清单 13. setLabelRelationship 助手方法的细节

Accessible setLabelRelationship(Accessible label, Accessible target) {     if ( label instanceof JLabel ) {       ((JLabel)label).setLabelFor((Component)target); /* *** done by setLabelFor ***       AccessibleContext ac1 = label.getAccessibleContext();       if ( ac1 == null ) {         throw new NullPointerException(          "AccessibleContext cannot be null on an Accessible object"          + formatClassToken(label));       }       AccessibleRelationSet ars1 = ac1.getAccessibleRelationSet();       AccessibleRelation  ar1 = new AccessibleRelation(         AccessibleRelation.LABEL_FOR, target);       ars1.add(ar1); */       AccessibleContext ac2 = target.getAccessibleContext();       if ( ac2 == null ) {         throw new NullPointerException(          "AccessibleContext cannot be null on an Accessible object"          + formatClassToken(target));       }       AccessibleRelationSet ars2 = ac2.getAccessibleRelationSet();       AccessibleRelation  ar2 = new AccessibleRelation(       

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号