java – 如何使用KeyListener
发布时间:2020-12-15 05:20:26 所属栏目:Java 来源:网络整理
导读:我正在尝试在我的程序中实现一个keylistener,以便当我按下箭头键时它会执行一个动作,程序中的对象向左或向右移动. 这是我程序中的移动方法 public void moveDirection(KeyEvent e) { int move = 0; int r = K.getRow(); int c = K.getCol(); if (e.getKeyCod
我正在尝试在我的程序中实现一个keylistener,以便当我按下箭头键时它会执行一个动作,程序中的对象向左或向右移动.
这是我程序中的移动方法 public void moveDirection(KeyEvent e) { int move = 0; int r = K.getRow(); int c = K.getCol(); if (e.getKeyCode() == 39) move = 1; //KeyEvent.VK_RIGHT if (e.getKeyCode() == 37) move = 2; //KeyEvent.VK_LEFT //if (e.getKeyCode() == KeyEvent.VK_DOWN) move = 3; switch (move) { case 1: if (inBound(r,c+1)) K.setLocation(r,c+1); if (inBound(r,c-1) && frame2[r][c-1] == K) frame2[K.getRow()][K.getCol()-1] = null; break; //move right 39 case 2: K.setLocation(K.getRow(),K.getCol()-1); break; //move left 37 //case 3: b.setLocation(b.getRow()+1,b.getCol()); break; //move down default: return; } processBlockList(); } 我想知道程序应该如何读入(KeyEvent)e.我真的不能输入一个箭头键…. 请帮忙! 编辑:我还需要知道我需要添加到我的代码中,以便我的程序等待大约700毫秒的密钥输入,然后再转到另一个方法 解决方法
http://docs.oracle.com/javase/tutorial/uiswing/events/keylistener.html
查看本教程 如果它是一个基于UI的应用程序,那么“我还需要知道我需要添加到我的代码中,以便我的程序在转到另一个方法之前等待大约700毫秒的密钥输入”你可以使用GlassPane或Timer类来实现需求. 对于关键事件: public void keyPressed(KeyEvent e) { int key = e.getKeyCode(); if (key == KeyEvent.VK_LEFT) { dx = -1; } if (key == KeyEvent.VK_RIGHT) { dx = 1; } if (key == KeyEvent.VK_UP) { dy = -1; } if (key == KeyEvent.VK_DOWN) { dy = 1; } } 检查这个游戏示例http://zetcode.com/tutorials/javagamestutorial/movingsprites/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |