(如 JFrame ),但较低级别的或动态的组件(如弹出式 JDialog )也可以被报告。
输出器定义了下列方法:
清单 16. 由输出器定义的方法
boolean isEnabled();
// signal report begin/end
void begin(PrintWriter pw);
void end(PrintWriter pw);
// signal level begin/end
void beginLevel(int level, PrintWriter pw);
void endLevel(int level, PrintWriter pw);
// signal object begin/end
void beginObject(int level, Object c, PrintWriter pw);
void endObject(int level, Object c, PrintWriter pw);
// report object identity
void identifyObject(int level, Object c, PrintWriter pw);
// report object
void outputObject(int level, Object c, PrintWriter pw);
void outputComponent(int level, Component c, PrintWriter pw);
void outputAccessible(int level, Accessible a, PrintWriter pw);
// optional indent report
String indent(int level);
String indent(int level, String pad);
// optionally end report line
void recommendEol(int level, PrintWriter pw);
// signal group (i.e, container) processing
void beginGroup(int level, PrintWriter pw);
void separateGroupMembers(int level, int index, PrintWriter pw);
void identifyGroupMember(int level, int index, PrintWriter pw);
void endGroup(int level, PrintWriter pw);
void emptyGroup(int level, PrintWriter pw);
与 SAX XML 解析器的工作方式类似,当由方法名表示的事件出现时,由 AccessibilityUtils.output() 方法调用这些方法。 AccessibleUtils 的这个示例中包 括下列输出器:
TextOutputter
生成简单的文本格式报告。子集示例是:
*javax.swing.JButton:16E7BF1D-button5
Component(id=button5,
text=,
toolTipText=Create a new document,
value=?,
mnemonic=78,
...) ** others omitted for brevity **
Accessible(name=New,
role=push button,
description=Create a new document,
action=javax.swing.JButton$AccessibleJButton@1bd8bf1d,
value=javax.swing.JButton$AccessibleJButton@1bd8bf1d,
text=null,
table=null,
relationSet=,
...) ** others omitted for brevity **
该文本(不包括所有封装)是由以下代码生成的:
AccessibleUtils.output(frame, "demo.txt", new TextOutputter());
HtmlOutputter
为可访问性编码: 用JFC/Swing将可访问性构建到您的Java应用(13)
时间:2011-04-03 IBM Barry A. Feigenbaum
生成浏览器中显示的 HTML 报告。 图 3中显示了子集示例。该 HTML 是由下列代码生 成的:
AccessibleUtils.output(frame, "demo.html", new
HtmlOutputter(HtmlOutputter.defaultHeader("Accessibility Demo 1")));
XmlOutputter
生成允许进一步处理的 XML 报告,譬如由 XSLT 样式表处理。子集示例如下:
<container level="6"
desc="javax.swing.JButton:1588FF1D-button6"
pdesc="javax.swing.JToolBar:17FAFF1D- toolBar0">
<fields>
<field context="self" type="java.lang.String">
<name>name</name>
<value status="ok">button6</value>
</field>
<field con
|