import java.awt.Dimension;
import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRelation;
import javax.accessibility.AccessibleRelationSet;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class MainClass extends JFrame {
MainClass() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel p = new JPanel();
p.setPreferredSize(new Dimension(300, 50));
JLabel jl = new JLabel("Name:");
p.add(jl);
JTextField jtf = new JTextField(20);
jtf.getAccessibleContext().setAccessibleName("Name-entry");
p.add(jtf);
AccessibleRelation ar = new AccessibleRelation("connector", jtf);
AccessibleContext ac = jl.getAccessibleContext();
ac.getAccessibleRelationSet().add(ar);
getContentPane().add(p);
pack();
setVisible(true);
}
public static void main(String[] args) {
MainClass ad11 = new MainClass();
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
}
ad11.dumpConnectedInfo(ad11.getAccessibleContext());
}
void dumpConnectedInfo(AccessibleContext ac) {
AccessibleRelationSet ars = ac.getAccessibleRelationSet();
AccessibleRelation ar = null;
if (ars != null)
ar = ars.get("connector");
if (ar != null) {
Object[] o = ar.getTarget();
JComponent jc = (JComponent) o[0];
System.out.println("Label connected to: " + jc.getAccessibleContext().getAccessibleName());
return;
}
int nChildren = ac.getAccessibleChildrenCount();
for (int i = 0; i < nChildren; i++)
dumpConnectedInfo(ac.getAccessibleChild(i).getAccessibleContext());
}
}