Jtable可以整体关注吗?

时间:2014-09-05 14:35:54

标签: java swing jtable focus

所以在我的代码中,我有

JTable table = new JTable();
table.requestFocus();
table.addFocusListener(new FocusListener()
    {

        @Override
        public void focusLost(FocusEvent arg0)
        {

        }

        @Override
        public void focusGained(FocusEvent arg0)
        {
            System.out.println("Table Focus gained !!!!!!!!!!!!!!!!!!");
        }
    });

但是当我测试代码时,表格没有焦点。

那么JTable作为一个整体可以有焦点,还是只有一个表格的单元格可以有焦点? 扩展上面的问题,JTable整体可以KeyListener吗?

1 个答案:

答案 0 :(得分:1)

所以看起来你正在尝试集中表,以便关键的监听器能够工作。我说不要使用KeyListener。请改用Key Bindings,您可以更好地控制不同焦点上下文中的操作。有关更多说明,请参阅链接。

一个简单的例子是,如果向WHEN_IN_FOCUSED_WINDOW输入映射添加键绑定,则组件不必聚焦以使键工作。另一方面,如果您只希望键工作然后表格被聚焦,您可以使用WHEN_FOCUSED输入映射,在这种情况下,您需要{<1}}在表之后< / em>包含表格的主框架/窗口可见。

这是第一个requestFocusInWindow的简单示例。 (输入ctrl + shift + space)

WHEN_IN_FOCUSED_WINDOW