0
我一直在嘗試使用箭頭鍵移動JPanel
。它一直沒有工作。我相信這是我的內心階層延伸KeyAdapter
。我也不確定ActionListener
是如何實施的。我所做的其他課並不重要,因爲它只是框架。使用KeyListener使用箭頭鍵移動JPanel中的矩形
package jerryWorlds;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Jerry extends JPanel implements ActionListener{
int SizeX, SizeY, PosX, PosY, VelX, VelY;
Image img;
Timer time = new Timer(1, this);
public Jerry(){
ImageIcon i = new ImageIcon();
addKeyListener(new AL());
time.start();
img = i.getImage();
PosX = 375;
PosY = 250;
}
public void paint(Graphics g){
Graphics2D g2d = (Graphics2D)g;
g2d.fillRect(PosX, PosY, 50, 100);
}
public void actionPerformed(ActionEvent e) {
PosX = PosX + VelX;
repaint();
}
private class AL extends KeyAdapter{
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
System.out.println("YAY!");
if(key == KeyEvent.VK_LEFT)
VelX = -1;
else if(key == KeyEvent.VK_RIGHT)
VelX = 1;
}
public void keyReleased(KeyEvent e) {
int key = e.getKeyCode();
if(key == KeyEvent.VK_LEFT)
VelX = 0;
else if(key == KeyEvent.VK_RIGHT)
VelX = 0;
}
}
}
這篇由@camickr發表的文章,關於[Motion Using the Keyboard](http://tips4java.wordpress.com/2013/06/09/motion-using-the-keyboard/),肯定會爲您的知識增加一些內容:-)。好像你的問題沒有寫在寫作的意義上,看着你看到的代碼,當你按下箭頭鍵時你想畫一個新的矩形,你真的不會移動你的標題中所述的'JPanel' ... –