首页 > 解决方案 > 编译器无法识别我对 .getPoint 的输入

问题描述

我们要创建一个飞机,每次用户输入向上箭头键时速度会增加 5mph,按下向下键时速度会降低 9mph。假设无论何时完成任何操作,它都会在输出框中将此报告给用户。如何设置它以便按键监听器告诉用户他们已经按下了向上键?我还在做这个,如果它很乱,很抱歉。

  private class PolygonPanel implements MouseListener, MouseMotionListener, KeyListener
  {
    public void mousePressed(MouseEvent event){}   //unused event
    public void mouseDragged(MouseEvent event){}   //unused event
    public void keyReleased(KeyEvent event){} 
    public void keyTyped(KeyEvent event){}
    //public void keyPressed(KeyEvent event){}


  public void keyPressed(KeyEvent event) {
    Integer planespeed=event.getKeyCode();

    if (event.getKeyCode() == KeyEvent.VK_RIGHT)
    {
      //Not gonna use this.
    }
    if (event.getKeyCode() == 39)//KeyEvent.VK_LEFT
    {

      System.out.print("This key is up");
    }
    if (event.getKeyCode() == KeyEvent.VK_UP)
    {
      System.out.print("This key has been pressed");
      //speed=planespeed+5;
    }
     if (event.getKeyCode() == KeyEvent.VK_DOWN)
    {
      //speed=planespeed-9;
    }
     repaint();
  }

标签: javakeylistenerkeyevent

解决方案


如果框架没有聚焦,则框架不会检测到键盘输入。因此,为了检索任何类型的键盘输入,您必须使用setFocusable(true);构造函数中的行将框架设置为可聚焦的。您可能还必须添加一行,addKeyListener(new PolygonPanel());以便完全注册侦听器。


推荐阅读