Переместить изображение с помощью клавиатуры - Java - PullRequest
4 голосов
/ 03 января 2012

Я хотел переместить свое изображение с помощью клавиш со стрелками на клавиатуре. когда я нажимаю клавиши со стрелками, он перемещается в соответствии с направлением. Тем не менее, мне нужно нажать на изображение, прежде чем можно будет его переместить. Могу ли я узнать, как отредактировать код так, чтобы мне не нужно было нажимать на изображение, прежде чем можно было его переместить? Я также хотел бы знать, как заставить изображение появиться слева, как только оно достигнет правого и наоборот.

Мои коды:

    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();
         }
     }

 }); 

Ответы [ 3 ]

4 голосов
/ 03 января 2012

Вы просматриваете KeyBindings , в противном случае вам нужно JComponent#setFocusable(), которые вкладывают Image, например для Moving Image

3 голосов
/ 03 января 2012
Collect.requestFocusInWindow();

requestFocusInWindow() ..

Запрашивает, чтобы этот Компонент получил фокус ввода, , если предок верхнего уровня этого Компонента уже сфокусированное Окно.

Обязательно вызывайте его только после того, как главное окно станет видимым и будет иметь фокус.

1 голос
/ 03 января 2012

KeyListener работают только тогда, когда компонент, имеющий прослушиватель , имеет фокус .Вы фокусируете внимание на том, что кажется «Собрать», нажав на него.Тогда слушатель работает.Вы можете добавить слушателя к другим вещам или заставить фокус оставаться на чем-то похожем на внешнюю рамку, используя слушатель фокуса для восстановления фокуса всякий раз, когда он теряется.

...