所以在我的代码中,我有
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
吗?
答案 0 :(得分:1)
所以看起来你正在尝试集中表,以便关键的监听器能够工作。我说不要使用KeyListener。请改用Key Bindings,您可以更好地控制不同焦点上下文中的操作。有关更多说明,请参阅链接。
一个简单的例子是,如果向WHEN_IN_FOCUSED_WINDOW
输入映射添加键绑定,则组件不必聚焦以使键工作。另一方面,如果您只希望键工作然后表格被聚焦,您可以使用WHEN_FOCUSED
输入映射,在这种情况下,您需要{<1}}在表之后< / em>包含表格的主框架/窗口可见。
这是第一个requestFocusInWindow
的简单示例。 (输入ctrl + shift + space)
WHEN_IN_FOCUSED_WINDOW