0
我想讓這個矩形移動,當我按下「w」鍵。我想知道爲什麼日食給我一個錯誤,說變量「你好」沒有找到,只要我清楚地將它標記爲上面聲明的矩形,並且它在「公共空白」類中。當我按下「w」時,它什麼都不做。將keylistener添加到java中。實施keylistener類限制?
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JComponent;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Line2D;
import java.awt.geom.Point2D;
import java.util.*;
public class drawingComponent extends JComponent implements KeyListener {
public void paintComponent(Graphics g){
Graphics2D g2 = (Graphics2D) g;
g2.setColor(new Color(255,25,0));
g2.setFont(new Font("monospace", Font.BOLD+Font.ITALIC, 30));
g2.drawString("nothing yet",300,320);
Rectangle hello = new Rectangle(300, 100, 50, 50);
g2.fill(hello);
}
@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_W){
hello.setLocation(hello.x-50, hello.y);
}
}
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
}
另外,什麼是所有的空行?這使得很難閱讀你的代碼。 – mattias 2014-11-08 23:33:57
太好了,謝謝,回答了我的問題。想知道爲什麼當我按「w」時似乎還沒有發生任何事情? – wilkers 2014-11-08 23:34:28
@wilkers:它是你想調用的'keyTyped()'方法嗎?那個沒有包含任何東西,所以什麼都不會發生請參閱[Java教程](https://docs.oracle.com/javase/tutorial/2d/basic2d/)和[Javadocs](https://docs.oracle.com/javase/7/docs/api/java/ awt/Graphics2D.html)以獲得更多關於如何使用Graphics2D的信息。如果它回答了您最初的問題,請不要忘記接受答案。 – mattias 2014-11-08 23:37:45