Java 过滤下一焦点组件

Java 过滤下一焦点组件,java,swing,focus,Java,Swing,Focus,我想过滤下一个焦点组件 使用tab键 例如,我不想关注JLabel,JScrollPane,JScrollBar按钮,JPanel等等 在没有程序员处理焦点的情况下,我如何动态地实现这一点 以下是我所做的: JFrame frame = new JFrame(""); frame.setFocusTraversalPolicy(new JTPCFocusTraversalPolicy()); public class JTPCFocusTraversalPolicy extends Layou

我想过滤下一个焦点组件 使用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次才能在1000个组件之间移动


在我的例子中,如何只制作两个标签在列表和按钮之间移动?

请看下面的示例:

该复选框已从焦点循环中删除,代码如下:


从Java 1.4开始,您可以定义。

发现了我的问题,我确实编写了我自己的FocusTraversalPolicy,看起来它可以工作,但我有一些隐藏面板,其中一些按钮不可见对不起,谢谢
togglePolicy.setFocusable(false);