Merlin的魔力: 焦点,焦点,还是焦点 - 编程入门网
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-06-20
, BorderLayout.SOUTH);
JButton east = new JButton("East");
contentPane.add(east, BorderLayout.EAST);
JButton west = new JButton("West");
contentPane.add(west, BorderLayout.WEST);
JButton center = new JButton("Center");
contentPane.add(center, BorderLayout.CENTER);
contentPane.setFocusable(false);
final Component order[] =
new Component[] {north, east, south, west, center};
FocusTraversalPolicy policy = new FocusTraversalPolicy() {
List list = Arrays.asList(order);
public Component getFirstComponent(Container focusCycleRoot) {
return order[0];
}
public Component getLastComponent(Container focusCycleRoot) {
return order[order.length-1];
}
public Component getComponentAfter(Container focusCycleRoot,
Component aComponent) {
int index = list.indexOf(aComponent);
return order[(index + 1) % order.length];
}
public Component getComponentBefore(Container focusCycleRoot,
Component aComponent) {
int index = list.indexOf(aComponent);
return order[(index - 1 + order.length) % order.length];
}
public Component getDefaultComponent(Container focusCycleRoot) {
return order[0];
}
};
frame.setFocusTraversalPolicy(policy);
frame.pack();
frame.show();
}
}
作为额外的练习,您可能想重写这个实例,以便亲身体验对 SortingFocusTraversalPolicy 的使用。别忘了分别试试对容器进行前向遍历和反向遍历。 结束语 Java平台1.4版中的焦点子系统修正了早期版本中存在的大量与焦点相关的问题。FocusTraversalPolicy 只是其中的一个改进。别忘了阅读 参考资料部分中引用的Focus规范说明书,以找到该规范其他部分的内容,包括新的 KeyboardFocusManager , requestFocus() 和 requestFocusInWindow 之间的不同,以及如何调整一个组件的焦点遍历键。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于Merlin的魔力: 焦点,焦点,还是焦点 - 编程入门网的所有评论