2017-05-04 67 views
-2
import java.applet.Applet; 
import java.awt.Color; 
import java.awt.Event; 
import java.awt.Graphics; 
import java.awt.event.KeyEvent; 
import java.awt.event.KeyListener; 

public class Drawing extends Applet implements KeyListener { 
/** 
    * 
    */ 

char c; 
int xCoord, yCoord, xCoord2, yCoord2; 
int lastx = getX(); 
int lasty = getY(); 
int count = 0; 
public void paint(Graphics g) { 


    switch (c) { 
    case 'b': 
    { 
    g.setColor(Color.black); 
    break; 
    } 
    case 'p': 
    { 
    g.setColor(Color.pink); 
    } 
    } 
    g.drawLine(xCoord, yCoord, xCoord2, yCoord2); 
} 
public void keyPressed(KeyEvent e) { 

} 
public void keyReleased(KeyEvent e) { 

} 

public void keyTyped(KeyEvent e) { 
    c = e.getKeyChar(); 
    System.out.println("check if it run"); 
    paint(this.getGraphics()); 

} 
public boolean mouseMove(Event e, int x, int y) { 
    System.out.println("mouse"); 
    xCoord2 = x; 
    yCoord2 = y; 
    xCoord = lastx; 
    yCoord = lasty; 
    lastx = x; 
    lasty = y; 
    if (xCoord != 0 || yCoord != 0) 
    this.paint(getGraphics()); 

    return true; 
} 


} 

爲什麼我的鍵類型方法沒有運行,我想通過鍵改變顏色,但它沒有運行,代碼運行良好,但我無法通過鍵入改變顏色。幫助這個計劃幾乎完成了me.The的目標,但我不能改變color.ssss sssssssssssssssssskeyListenner and mousemove

+1

壓痕,請。沒有人應該閱讀這樣的代碼。 – khelwood

+0

1)Applets已棄用,您應該停止使用它們; 2)不要使用'getGraphics',並且絕對不要試圖自己調用'paint',這不是繪畫的工作原理 - 請參閱[繪畫中的Swing](http://www.oracle.com/technetwork/java/painting) -140037.html)和[執行自定義繪畫](https://docs.oracle.com/javase/tutorial/uiswing/painting/)瞭解繪畫是如何工作的以及如何使用它; 3)與所有關於'KeyListener'的問題一樣,請使用[Key Bindings API](https://docs.oracle.com/javase/tutorial/uiswing/misc/keybinding.html) – MadProgrammer

回答