我对在扩展setFocusTraversalKeysEnabled
并实现JPanel
的类的构造函数中添加KeyListener
的目的感到困惑。
setFocusTraversalKeysEnabled()
的用途是什么?
答案 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();