猿问

【Java】为什么在按键监听中不能运算?

我在看书的时候,发生了键盘监听的代码,于是就自己开始琢磨起来,但是我写着写着突然发现在按键监听中不能运算,代码如下:


import java.awt.event.*;

import javax.swing.*;

import java.awt.*;


public class Test{

static int x=0;

static int y=0;


public static void main(String[]args){


JFrame 单人游戏=new JFrame("1");


单人游戏.getContentPane().setBackground(new Color(0,0,0));

单人游戏.setSize(640,480);

单人游戏.setLocationRelativeTo(null);

单人游戏.setLayout(null);

单人游戏.setResizable(false);

单人游戏.setVisible(true);


单人游戏.addKeyListener(new KeyAdapter(){

   public void keyPressed(KeyEvent e){

   if(e.getKeyCode()==KeyEvent.VK_W){

   System.out.println(x+";"+(y-1));

   }

   }

   });

}

}


此代码的作用是在我按下“W”键时变量“y”就会减一,但是代码的运行结果是我不管按了多少次“W”输出的都是“0;-1”,这究竟是为什么?

Goolnn
浏览 1383回答 1
1回答

大咪

这样写可以,你把y那块做个处理,让他每次减完在加上初始的sub,因为按照你那个代码写的意思是每次按下w就会在控制台输出y-1,然而你的定义是y=0,y每次的值都是0,不会变,从而每次你按完w键一直都是0-1,所以输出的一直是-1
随时随地看视频慕课网APP

相关分类

Java
我要回答