[英]KeyListener is not working
以下代碼不起作用。 我正在嘗試使用按鍵方法向左,向右,向上和向下移動播放器,但是當我按按鍵時它沒有響應。 我並沒有將整個代碼粘貼到移動框的那一部分,還有其他if語句來實現其他內容的移動。
public class innerClassKeyPressed {
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;
}
if (key == 82)
{
initLevel(currlevel);
} //R
if (key == 78)
{
currlevel++;
initLevel(currlevel);
}
if ( (key == KeyEvent.VK_LEFT ) && ( key == KeyEvent.VK_RIGHT ) &&
(key == KeyEvent.VK_UP ) && ( key == KeyEvent.VK_DOWN )) {
return;
}
for (int row=0; row < myArray.length; row++)
{
for (int column=0; column < myArray[row].length; column++)
{
if( myArray[row][column]== Contents.PLAYER) {
if (myArray[row+dy][column+dx] == Contents.BOX)
{
if (myArray[row+dy*2][column+dx*2] == Contents.EMPTY)
{
myArray[row+dy][column+dx]= Contents.PLAYER;
myArray[row][column]= Contents.EMPTY;
myArray[row+dy*2][column+dx*2]= Contents.BOX;
KeyListeners
器因無法正常運行而臭名昭著(實際上,它們確實在工作,只是不是您認為的那樣)。
KeyListener
的問題在於,它們只會在注冊其組件的組件具有焦點並具有焦點(也稱為鍵盤焦點)時作出反應。
而是應使用按鍵綁定,因為它們允許確定觸發它們的焦點狀態。
當我猜測您使用JFrame和Canvas繪制播放器時,我還假定這沒有用,因為您尚未將KeyListener添加到JFrame中。
例如:
JFrame frame = new JFrame();
frame.addKeyListener(keylistener);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.