在我的应用中,我正在使用一个jpanel,我想在其中添加一个关键的监听器。我做的。但它不起作用。
是不是因为我使用swingworker来每秒更新面板的内容。
以下是我更新面板的代码
RenderedImage image = ImageIO.read(new ByteArrayInputStream((byte[]) get()));
Graphics graphics = remote.rdpanel.getGraphics();
if (graphics != null) {
Image readyImage = new ImageIcon(UtilityFunctions.convertRenderedImage(image)).getImage();
graphics.drawImage(readyImage, 0, 0, remote.rdpanel.getWidth(), remote.rdpanel.getHeight(), null);
}
答案 0 :(得分:3)
JPanel
是否有键盘焦点?
我建议您使用InputMap
和WHEN_IN_FOCUSED_WINDOW
或类似内容。摘录自How to Use Key Bindings:
搜索聚焦窗口中所有已启用组件的WHEN_IN_FOCUSED_WINDOW输入映射。因为搜索组件的顺序是不可预测的
这对我来说非常有效。有关更多信息和实际代码示例,请查看我的其他帖子:
或本教程:Swing: Understanding Input/Action Maps
相关问题: