好吧,我對Java有點新鮮。我的問題是這樣的:如何在一個鍵被按下而改變了一個值的時候發出一個事件?
我有一個叫做「Control」的類。該類實現KeyListener並能夠讀取鍵碼。 我也有另一個叫「顯示」的類。如果按下一個鍵,我可以使控制打印文本到控制檯,這樣就可以工作。但是現在,如果按下某個鍵,我想讓Control類更改一個int X,並將此值發送到Display中的方法。顯示有一個方法,應該做一些值。
這裏是新的代碼片段:
CONTROL.JAVA
公共類控件實現KeyListener的{
private Display display;
private int x = 0;
public Control(){
}
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_D){
x++;
System.out.println("D");
}
else if (e.getKeyCode() == KeyEvent.VK_A){
x--;
System.out.println("A");
}
display.DoSomethingWithX(x);
}
public void keyReleased(KeyEvent e) {}
public void keyTyped(KeyEvent e) {}
}
DISPLAY.JAVA
公共類顯示擴展JPanel {
public Display(){
JFrame main = new JFrame("Unnamed");
main.add(this);
main.setSize(xWidth, yHeight);
main.setVisible(true);
main.setDefaultCloseOperation(main.EXIT_ON_CLOSE);
main.addKeyListener(new Control());
main.setFocusable(true);
}
public void DoSomethingWithX(int x){
Graphics g;
g.setColor(c); //Let's assume c is already defined somewhere.
g.drawLine(x, 25, x, 25); //Don't mind the y value. It is least important.
}
public static void main(String[] args){
Display display = new Display();
}
}
1)爲了更好地幫助越早,張貼[SSCCE](http://sscce.org/ )。 2)請學習常見的[Java命名約定](http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html#73307)(具體用於名稱的情況) ,方法和屬性名稱並一致使用。 –