我想过滤下一个焦点组件 使用tab键
例如,我不想关注JLabel
,JScrollPane
,JScrollBar
按钮,JPanel
等...
如果没有程序员处理焦点,我怎么能动态地做到这一点?
这就是我所做的:
JFrame frame = new JFrame("");
frame.setFocusTraversalPolicy(new JTPCFocusTraversalPolicy());
public class JTPCFocusTraversalPolicy extends LayoutFocusTraversalPolicy {
protected boolean accept(Component aComponent) {
return !JTPCGUIUtils.getInstance().filterCompoenent(aComponent);
}
}
我有一个JList
和JButton
的情况,但我必须按Tab键4次才能在各个组件之间移动。
在我的情况下,如何才能在列表和按钮之间只移动2个标签?
答案 0 :(得分:1)
查看http://java.sun.com/docs/books/tutorial/uiswing/misc/focus.html
上的示例使用以下代码行从复焦周期中删除复选框:
togglePolicy.setFocusable(false);
答案 1 :(得分:1)
从Java 1.4开始,您可以定义FocusTraversalPolicy:http://java.sun.com/j2se/1.4.2/docs/api/java/awt/FocusTraversalPolicy.html