Java 为什么control TAB按键不起作用?

Java 为什么control TAB按键不起作用?,java,swing,keystroke,Java,Swing,Keystroke,下面是我的代码 import java.awt.Color; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.util.Arrays; import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.JComponent; import javax.swing.JFrame; import jav

下面是我的代码

import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.util.Arrays;

import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.KeyStroke;

public class Test {
    private int selected = 0;

    public Test() {

        JLabel[] lables = new JLabel[] { new JLabel("Lable1"),
                new JLabel("Label2") };
        JFrame frame = new JFrame("FrameDemo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JPanel contentPane = (JPanel) frame.getContentPane();
        contentPane.setLayout(new FlowLayout());
        contentPane.add(lables[0]);
        contentPane.add(lables[1]);
        frame.pack();

        contentPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
                KeyStroke.getKeyStroke("control TAB"), "next");
        Action action = new AbstractAction("next") {

            private static final long serialVersionUID = 1L;

            @Override
            public void actionPerformed(ActionEvent e) {
                selected++;
                Arrays.stream(lables).forEach(
                        l -> l.setForeground(Color.LIGHT_GRAY));
                lables[selected % 2].setForeground(Color.BLACK);

                System.out.println(selected);
                contentPane.revalidate();
                contentPane.repaint();
            }
        };
        contentPane.getActionMap().put("next", action);

        frame.setVisible(true);
    }

    public static void main(String[] args) {
        new Test();

    }
}
但当我按下control TAB时,什么也没发生。但是如果我将代码更改为类似于
KeyStroke.getKeyStroke(“controlk”),“next”)控件K keystrke更改前景色


我做错了什么?“控制选项卡”是否保留用于某些目的?如果是这样的话,我如何改变这种行为,以便我可以将击键绑定到我的操作?

put
frame.setFocusTraversalKeysEnabled(false)的可能重复根据副本link@Madhan谢谢你的回答,Madhan,但我的问题也涉及到控制键。链接问题及其答案涉及TAB键和SHIFT键。我想确保答案也适用于CTRL-TAB。只要在代码中添加上面提到的行,它就会工作