setFocusTraversalKeysEnabled()的用途是什么?

时间:2018-07-09 02:34:34

标签: java swing focus

我对在扩展setFocusTraversalKeysEnabled并实现JPanel的类的构造函数中添加KeyListener的目的感到困惑。

setFocusTraversalKeysEnabled()的用途是什么?

1 个答案:

答案 0 :(得分:0)

setFocusTraversalKeysEnabled()决定当当前Component具有焦点时是否允许使用焦点遍历键(TAB键,SHIFT + TAB等)。例如:

JTextField tabAllowed = new JTextField();
JTextField tabNotAllowed = new JTextField();

tabAllowed.setFocusTraversalKeysEnabled(true); // The default value is true.
tabNotAllowed.setFocusTraversalKeysEnabled(false); // The default value is overridden.

如果焦点位于tabAllowed,则可以使用TAB键转到下一个Component。如果焦点位于tabNotAllowed,则按TAB键将不允许您转到下一个Component

就您而言,由于您正在实施KeyListener,因此它可能没有用。如果要在构造函数中将其设置为setFocusTraversalKeysEnabled(false);,则假定使用KeyListener实现了遍历键,则可能需要使用以下内容来获得焦点:

setFocusable(true);
setRequestFocusEnabled(true);
// some code here
// ...
panel.grabFocus();