如何让JTabbedPane不要捕捉Ctrl + Tab键绑定?

时间:2014-04-22 19:24:46

标签: java swing key-bindings

当我按Ctrl + Tab时,JTabbedPane中的所选标签会获得焦点。

但我想删除此密钥绑定。所以我有自己的键绑定Ctrl + Tab动作。 它被分配给JTabbedPane。

但它没有被解雇,因为这个键绑定仍然关注当前标签。

1 个答案:

答案 0 :(得分:2)

  

所以我对键绑定Ctrl + Tab有自己的操作。它被分配给JTabbedPane。

分配Key Binding时是否使用了正确的InputMap?大多数LAF将使用JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT InputMap。

请参阅Key Bindings以获取LAF的绑定列表。

如果Key Binding不起作用,那么另一个选项可能是从选项卡式窗格中删除Ctrl-Tab作为焦点遍历键:

Set newForwardKeys = new HashSet();
newForwardKeys.add( KeyStroke.getKeyStroke("TAB") );
tabbedPane.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, newForwardKeys);