使用键盘移动图像 – Java

我想用键盘箭头键移动我的图像。 当我按下箭头键时,它会相应地移动到方向。 但是,我需要先点击图像才能移动它。 我是否可以知道如何编辑代码,以便在移动之前我不需要单击图像? 我还想知道如果图像一旦到达右边就会从左侧出现,反之亦然。

我的代码是:

Collect.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent ke) { if(ke.getKeyCode() == KeyEvent.VK_LEFT) { Collect.setLocation(Collect.getX()-8,Collect.getY()); repaint(); } if(ke.getKeyCode() == KeyEvent.VK_RIGHT) { Collect.setLocation(Collect.getX()+8,Collect.getY()); repaint(); } } }); Collect.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent me) { if(me.getClickCount() == 1) { boolean dd = Collect.isOptimizedDrawingEnabled(); boolean ff = Collect.requestFocusInWindow(); repaint(); } } }); 

你看看KeyBindings ,否则你需要嵌套Image JComponent#setFocusable() , 运动图像的例子

 Collect.requestFocusInWindow(); 

requestFocusInWindow() ..

如果此Component的顶级祖先已经是焦点窗口请求此Component获取输入焦点

确保仅在主窗口可见并具有焦点后才调用它。

KeyListeners仅在具有侦听器的组件具有焦点时才起作用。 您通过单击将焦点放在似乎是收集的内容上。 然后听众工作。 您可以将侦听器添加到其他内容或强制焦点保留在外框之类的内容上,方法是使用焦点侦听器在丢失时重新获得焦点。