我正在为我的大学项目开发地图编辑器。而且我遇到了一个问题,即地图面板没有在应该监听关键事件。当我将 ToolBarPane(扩展 JPanel)与 JComponent(如 JButton)、在其上实现 ActionListener 的 JComboBox 以及地图面板(扩展 JPanel)一起添加到 Frame(我使用 BorderLayout)时,就会发生这种情况。我有 System.out.println 语句来测试是否收到按键,并且它没有打印,如果我删除工具栏,按键监听器再次工作,mouseListenner 就像 keyListener 一样被禁用,这意味着我可以t 处理按下事件等,但 mouseListener 工作正常,我仍然可以处理鼠标移动事件。
这是一个屏幕截图,它是如何在没有 ToolBarPane 的情况下工作的
http://img684.imageshack.us/img684/3232/sampleku.png
请注意,您可以使用鼠标将图像放在地图上,您也可以像激光工具一样使用鼠标选择图像,并且通过按数字键可以在不同图像之间切换,这工作正常,直到我添加显示的 ToolBarPane像这样:
img291.imageshack.us/img291/8020/failve.png (请在此之前添加http,我只能发布一个超链接)
(因为我是新用户,所以不能在这里发图片)
使用 ToolBarPane 时,我不再能够处理关键事件。
我想这可能是因为焦点以某种方式转移到了该面板,但根本不确定。
和身体知道这一点并且可以帮助我吗?
非常感谢