- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
据说只要你按下一个键,它就应该访问代码,但事实并非如此,我或我的老师也不知道为什么。代码如下:
class KeyInput implements KeyListener{
Actor player;
Graphics gBuffer;
public KeyInput(Actor player, Graphics gBuffer){
JTextField typingArea = new JTextField(20);
typingArea.addKeyListener(this);
this.player = player;
this.gBuffer = gBuffer;
}
public void keyReleased(KeyEvent e){
}
public void keyTyped(KeyEvent e){
}
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
if (key == KeyEvent.VK_LEFT) {
player.modActor(1);
gBuffer.drawString("ENTER",150,100);
}
if (key == KeyEvent.VK_RIGHT) {
player.modActor(2);
gBuffer.drawString("ENTER",150,100);
}
if (key == KeyEvent.VK_UP) {
player.modActor(3);
gBuffer.drawString("ENTER",150,100);
}
if (key == KeyEvent.VK_DOWN) {
player.modActor(4);
gBuffer.drawString("ENTER",150,100);
}
}
}
这是节目期间播放的时间:
public void paint(Graphics g){ //main method to be called to play(g);
do{
drawBackground(gBuffer);
gBuffer.setFont(new Font("Calibri",Font.BOLD,20));
gBuffer.setColor(Color.CYAN);
gBuffer.drawString("Score: " + (int)score,18,20);
gBuffer.drawString("Score: " + (int)score,22,20);
gBuffer.drawString("Score: " + (int)score,20,22);
gBuffer.drawString("Score: " + (int)score,20,18);
gBuffer.setColor(Color.BLACK);
gBuffer.drawString("Score: " + (int)score,20,20);
play(gBuffer);
g.drawImage(virtualMem,0,0,this);
if(lose==false){
gBuffer.setFont(new Font("Calibri",Font.BOLD,50));
gBuffer.setColor(Color.CYAN);
gBuffer.drawString("GAME OVER",42,200);
gBuffer.drawString("GAME OVER",38,200);
gBuffer.drawString("GAME OVER",40,202);
gBuffer.drawString("GAME OVER",40,198);
gBuffer.setColor(Color.BLACK);
gBuffer.drawString("GAME OVER",40,200);
gBuffer.drawString("Final Score: " + (int)score,20,260);
}
}while(lose);
}
关键输入需要移动我拥有的 Actor ,但它根本不移动,是的,我每次都在小程序内单击。知道发生了什么吗?
编辑:我现在已经放弃了 keyListener 并尝试了 keyBindings,但我对它们很陌生,可能有问题,请帮助我......
public void init() {
panel = new JPanel();
this.setSize(400,700);
this.setFocusTraversalKeysEnabled(false);
this.addKeyListener(this);
player = new Actor(180,500);
virtualMem = createImage(400,800);
gBuffer = virtualMem.getGraphics();
panel.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_W, 0), "up");
panel.getActionMap().put("up", new AbstractAction(){
public void actionPerformed(ActionEvent e) {
gBuffer.drawString("IT WORKS", 150, 150);
repaint();
}
});
panel.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_S, 0), "down");
panel.getActionMap().put("down", new AbstractAction() {
public void actionPerformed(ActionEvent e) {
gBuffer.drawString("IT WORKS", 150, 150);
repaint();
}
});
panel.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_A, 0), "left");
panel.getActionMap().put("left", new AbstractAction() {
public void actionPerformed(ActionEvent e) {
gBuffer.drawString("IT WORKS", 150, 150);
repaint();
}
});
panel.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_D, 0), "right");
panel.getActionMap().put("right", new AbstractAction() {
public void actionPerformed(ActionEvent e) {
gBuffer.drawString("IT WORKS", 150, 150);
repaint();
}
});
}
暂时还是一样(玩)。当我单击某些内容时,它也不会访问这些方法。
最佳答案
我担心,paint
() 内的无限循环可能会干扰事件管理(请记住,有一个线程可以完成这两件事)。为什么不在每个重要事件(例如,按键)上触发 repaint
() 呢?
关于java - 运行一段时间后,KeyInput 将不起作用(JCreator、Applet),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23875063/
我学校用的是4.5,除了版本号,好像没有什么区别 最佳答案 在他们的网站上阅读文章 http://www.jcreator.com/forums/index.php?showtopic=7803 ,它
嗨,我正在为学校布置一份作业,并从中得到一个非常奇怪的输出。程序编译得很好,但我检查了它给我的输出: --------------------Configuration: --------------
我正在使用按钮和 if-else 语句在 JCreator 中进行匹配/内存游戏 当你点击按钮时,点击的图片会弹出,如果你点击下一张,但不是同一张图片,那么两者都会关闭。如果您获得正确的匹配图像,它们
你能帮我编写java编码吗,这样我就可以使用命令提示符复制单个文件。 所以,我想从Windows的命令提示符运行java文件,例如“java“我的java脚本”“我的文件目标””,并在同一目录中复制我
我在试图找出为什么会出现此错误时遇到了非常困难的时间。当我使用驱动程序文件来测试程序时,它严重失败。 这是我的代码: import java.util.Scanner; import java.lan
你们中有人知道如何执行此程序吗,请查看下面的说明 “编写一个程序,让银行客户登录并查看其详细信息、取款、存钱和更改 PIN 码。使用数组存储姓名、PIN 码、账户余额和 overdraw 。当用户使用
我已经安装了 JCreator 5.0 (jcreator.com)我不知道如何在 JCreator 中打开智能感知。此外,错误没有被标记。我浏览了选项,但没有找到正确的选项。 感谢您的帮助。 最佳答
输入 t(行数),接下来的 t 行包含空格分隔的数字。 输出 输出应返回每行中数字的总和。 问题 已在JCreater中编码,没有编译错误!但是只有在取消注释行后才能获得所需的输出,否则程序会突然终止
我想在 JTable 中添加行,但效果不佳。有人可以帮助我吗?表格显示正常,但不是动态显示 //displays all data in Jtable void refresh() { Vec
我想通过在 jcreator 编辑器中编写 java 代码来读取 doc 文件。为此,我想使用 Apache POI jar 文件。 但我不知道如何在Jcreator 编辑器中添加jar 文件。我的文
我目前使用的是 JCreator 5.0 和 JDK 1.7.0_51。我在编码时没有遇到任何问题,这一次我决定在 JavaFX 领域进行冒险,但似乎我无法接触到它的任何内容。这是当我按下“构建文件”
我收到一个错误,指出我使用的变量之一未初始化,但在查看代码后,我意识到我实际上已经初始化了该变量,所以我不明白为什么我不断收到错误。 这是错误: error: variable tax mig
据说只要你按下一个键,它就应该访问代码,但事实并非如此,我或我的老师也不知道为什么。代码如下: class KeyInput implements KeyListener{ Actor player;
您好,我一直在尝试使用以下代码使用 List 引用来引用 ArrayList: import java.util.List; public class Purse { private List
我的小程序代码编译得很好,但是,我每次都会收到“小程序已启动”消息。请不要阻止我使用 AWT 或 Applet。我只是想完成我的任务。目前,我的代码是: 主要方法 import java.awt.*;
This question already has answers here: What does a “Cannot find symbol” or “Cannot resolve symbol”
这是我对sphere在线判断的解决方案palin problem 。它在 Netbeans 上运行良好,但法官拒绝了我的回答,称它给出了运行时错误。我在 JCreator 上尝试过,它说: Excep
我是编程新手,目前在我们的类(class)中我们正在学习 java。我正在尝试创建一个仅需要使用 String 变量的例程。下面是我正在使用的代码: public static void main(S
我在我的项目中创建了一个名为 Student_Tester.java 的新类。我将使用这个测试器类来创建 Student 对象的实例。现在我尝试创建输出,但不断出现以下错误: error: class
我对这个还是陌生的。但是,我在向 mt 数据库中插入数据时遇到问题。我认为我的脚本中存在很多错误 import java.awt.*; import javax.swing.*; import jav
我是一名优秀的程序员,十分优秀!