快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
  AccessibleRelation.LABELLED_BY, label);       ars2.add(ar2);     }     return label; }

呈现复杂组件

在 Swing 中,某些复杂组件(如 JTree 、 JTable 、 JList 和 JComboBox )不直 接呈现其内容。而是将此任务委托给由 呈现程序创建的组件。呈现程序是一个工厂对象 ,它创建一个组件,用来创建显示复杂组件的行/单元值的组件。该组件仅在绘制行/单 元的短暂时间内使用。通过提供定制的组件,您可以控制如何将行/单元呈现给用户,包 括提供由 AT 阅读器使用的可访问信息。

由呈现程序生成的组件需要和我们迄今为止所讨论过的比较简单的组件一样,对于用 户是可访问的,这意味着我们必须能够设置其可访问性值。在 Swing 中,我们通常通过 创建 xxxCellRenderer 子类来做到这一点,其中 xxx 是基本组件类型。清单 14 显示了 JList 的单元呈现程序。请注意实际使用的工具箱的助手类。

清单 14. JList 的单元呈现程序

class DemoListCellRenderer implements ListCellRenderer {     protected ListCellRenderer _lcr = new DefaultListCellRenderer();     public Component getListCellRendererComponent(        JList list,        Object value,        int index,        boolean isSelected,        boolean cellHasFocus) {s       String name = value.toString();       String shortDesc =        AccessibleUtils.formatText(resourceBundle, "months {0} ", name);       String longDesc =        AccessibleUtils.formatText(resourceBundle, "Selects month {0}",          (String)_monthsMap.get(name.substring(0,3)));       JComponent c = (JComponent)_lcr.getListCellRendererComponent(         list,         name,         index,         isSelected,         cellHasFocus);       return (Component)AccessibleUtils.setAccessibleValues(         resourceBundle, (Accessible)c,         new AccessibleUtils.AccessibleValues(           idGen.nextId("label"),           name,           shortDesc, longDesc, "=ld"));     } }

如您所见,从可访问性的观点看,使用呈现程序提供的组件非常类似于使用普通的组 件。尽管本讨论只展示了如何向呈现程序添加可访问性支持,但用于可编辑的行或单元的 编辑器也需要类似的考虑事项。请参阅 源代码以了解更多关于工具箱对呈现复杂组件的 支持。

葎辛恵諒來園鷹: 喘JFC/Swing繍辛恵諒來更秀欺艇議Java哘喘(11)

扮寂:2011-04-03 IBM Barry A. Feigenbaum

刮屬艇議 GUI

壓云猟議寄何蛍鐙嫌嶄?厘断網胎阻泌採聞 Swing 哘喘殻會辛恵諒?徽艇泌採刮屬 GUI 議辛恵諒來椿?霞編鹸墫 GUI 貧議耽倖怏周頁継扮議?旺俶勣艇返遊嗤 AT 堋響匂 。Sun Microsystems 戻工阻逸廁艇音喘 AT 堋響匂軸辛霞編 GUI 議垢醤?萩歌堋 歌深 彿創??徽宸乂垢醤俶勣寄楚繁垢住札嘉嬬嗤丼糞仏。

葎阻盾畳宸匯諒籾? AccessibilityUtils 戻工阻峺竃辛嬬議賜糞縞凖息議辛恵諒來 佚連議烏御崇尺。 public static AccessibilityUtils.output() 圭隈聞喘 com.ibm.wac.Outputter 糞?栖伏撹烏御?泌和侭幣?

void output(Component c, PrintWriter pw, Outputter out); void output(Component c, OutputStream os, Outputter out); void output(Component c, String fileName, Outputter out) throws IOException;

output 圭隈議糞?泌賠汽 15 侭

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号