Tab键无法转移JTable的焦点

时间:2014-09-05 20:05:15

标签: java swing jtable focus

所以我的框架中有2个组件,一个表和一个文本字段。但当 该表具有焦点,我按Tab键,焦点不会转到文本 领域。为什么会这样?

public static void main(String[] args) {
     SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            JFrame frame = new JFrame();
            String[][] data = { { "Data" } };
            String[] cols = { "COlo" };
            JTable table = new JTable(data, cols);
            table.addFocusListener(new FocusListener() {

                public void focusLost(FocusEvent arg0) {
                    System.out.println("focus lost");
                }

                public void focusGained(FocusEvent arg0) {
                    System.out.println("gained");
                }
            });
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.add(table, BorderLayout.NORTH);
            frame.add(new JTextField(), BorderLayout.SOUTH);
            frame.setVisible(true);
            table.requestFocus();

        }
    });
}

1 个答案:

答案 0 :(得分:1)

  

为什么会这样?

由于 Tab 键用于JTable中的单元格导航,Focus Subsystem使用 Control - 选项卡导航JTable out 。有关示例,请参阅Customizing Focus Traversal。您可以更改here所示的默认行为。