2012-01-03 65 views
4

我想使用鍵盤箭頭鍵移動圖像。當我按下箭頭鍵時,它會相應地朝着方向移動。但是,我需要點擊圖片才能移動它。我可否知道如何編輯代碼,以便在移動圖像之前不需要單擊圖像?我也想知道如何讓圖像從左側出現,一旦到達右側,反之亦然。使用鍵盤移動圖像 - 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(); 
     } 
    } 

}); 
+1

1)爲了更好地提供幫助,請發佈[SSCCE](http://sscce.org/)。 2)請學習常用的Java命名法(例如'Collect' - >'collect')並將其用於代碼示例中。 – 2012-01-03 17:50:32

回答

4

你必須看看​​3210,否則你必須JComponent#setFocusable()築巢的Image,例如爲Moving Image

+0

+1鍵綁定。有一個相關的例子[這裏](http://stackoverflow.com/a/5797965/230513)。 – trashgod 2012-01-03 18:47:08

3
Collect.requestFocusInWindow(); 

requestFocusInWindow() ..

請求該組件ge t輸入焦點,如果這個組件的頂級祖先是已經是的聚焦窗口。

請務必在主窗口可見並且有焦點之後調用它。

1

KeyListeners只在具有listener has focus的組件時才起作用。您正在關注點擊它看起來似乎是「收集」的內容。然後聽衆的作品。您可以將偵聽器添加到其他事物中,或通過使用焦點偵聽器在焦點丟失時重新獲得焦點來強制焦點保持在外框之類的東西上。