如何在 Java 中检测按键
我的儿子(11岁)正在学习Java,他将输入一个问题和一些代码。他告诉我,他无法在网站上找到这个问题的答案。您将阅读我编辑过的问题版本。非常感谢。
我如何在java中检测到按键,我的IDE被称为eclipse,我已经做了一些类。我在互联网的keyconfigofplayer中找到了代码,并将其更改为扩展播放器类。我想要它,所以当我按住一个键时,一个矩形或椭圆形将在屏幕上移动,我该怎么做?由于某种原因,它不会正确键入代码,这就是为什么我的导入没有星号并且看起来很奇怪。很抱歉。请忽略它。我无法修复:(.这是我的代码:
窗口代码:
import javax.swing.*;
import java.awt.*;
public class window {
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
f.setSize(600, 600);
player p = new player();
f.add(p);
keyconfigofplayer key = new keyconfigofplayer();
p.add(key);
f.add(key);
}
}
//this class is the player graphic
import javax.swing.*;
import java.awt.*;
public class player extends JPanel {
int x = 50;
int y = 50;
public void paint() {//This is where the graphic is painted to the screen
repaint();
}
public void paintComponent(Graphics g) {
//This is where the graphic is 'manufactured'
super.paintComponent(g);
g.setColor(Color.GREEN);
int width = 20;
int height = 20;
g.fillRect(x, y, width, height);
int width2 = 10;
int height2 = 10;
g.fillOval(x, y, width2, height2);
}
}
//the keyconfigofplayer class(where i think the problems are):
//this class is the player graphic
import javax.swing.*;
import java.awt.*;
public class player extends JPanel {
int x = 50;
int y = 50;
public void paint() {//This is where the graphic is painted to the screen
repaint();
}
public void paintComponent(Graphics g) {
//This is where the graphic is 'manufactured'
super.paintComponent(g);
g.setColor(Color.GREEN);
int width = 20;
int height = 20;
g.fillRect(x, y, width, height);
int width2 = 10;
int height2 = 10;
g.fillOval(x, y, width2, height2);
}
}
我试图很好地评论的类,所以你知道它是什么意思。我从youtube频道macheads101中获得了keyconfigofplayer的代码,我认为如何在java第12或11集中编写GUI。我认为我的问题不在于更新图像,而在于检测何时按下并释放了该键。因此,也许我应该做一个临时循环,说明:如果按下此键,则+10到x坐标,直到其完成并不断更新位置。我还想问,什么时候使用公共,私人和无效?我不明白这些:(如果Ive完成了扩展播放器正确实现的事情。我试图仔细地改变macheads101的代码,当我完全复制它时,它也不起作用。所以我真的不知道出了什么问题。如果您回答了我的问题并帮助我更改代码,我将不胜感激。最终,它将成为一款射击游戏,就像街机游戏“太空侵略者”或“龙射手”一样。