首页 > 解决方案 > 有没有办法同时检测按键和显示图形?

问题描述

在过去的几天里,我一直在尝试在 Java 画布中开发一个游戏(一个非常原始的游戏)。但是,每次我尝试查找 KeyListener 和 Graphics 的代码时,它们总是相互独立(在类方面),我正在努力将它们组合在一起。我在画布内实例化 KeyListener 的尝试总是以does not override abstract method错误告终。我已经尝试在 Oracle、GeeksforGeeks 和其他 StackOverflow 问题上查找“抽象”错误,但是创建子类的所有策略都以相同的错误结尾。可能有更好的方法来做到这一点,任何提示?

这是我到目前为止的代码:

import java.awt.event.*;

// This creates the canvas itself, and I understand how this works
public class Project extends Frame {
   public static void main(String args[]) {
      new Project();
   }
   public Project() {
      super("Java 2D Example01");
      setSize(480,360);
      setVisible(true);
      addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            dispose();
            System.exit(0);
         }
      }
      );
      addKeyListener(new TypeThings(){}); // Here's the "abstract" error I got
   }
   public void paint(Graphics g) {
      // This is empty for now
   }
}

// Here's where I put the KeyListener class, which I'm not sure is the best place for it
abstract class TypeThings implements KeyListener {
   public void keyTyped(KeyEvent event) {
      if (event.getKeyCode() == KeyEvent.VK_UP) {
         System.out.println("U");
      }
      if (event.getKeyCode() == KeyEvent.VK_DOWN) {
         System.out.println("D");
      }
      if (event.getKeyCode() == KeyEvent.VK_LEFT) {
         System.out.println("L");
      }
      if (event.getKeyCode() == KeyEvent.VK_RIGHT) {
         System.out.println("R");
      }
   }
}

标签: javagraphicskeykeylistener

解决方案


推荐阅读