2012-10-09 53 views
0

我有一個看似非常簡單的任務。我有一個網格(現在500x500),因爲它是填充的,所以我想要可視化,並且我想用Java編寫一個類,這使得我可以輕鬆完成。我在想的東西沿着線:簡單的繪畫

public class Screen { 
    ... 

    public void plot(x,y) { 
    // change the color of pixel x,y to black 
    } 

    public void clear() { 
    // fill the screen with white 
    } 
} 

我一直環顧四周,很快就發現畫布在AWT,但是從我已經能夠找出到目前爲止,這個小部件將只允許我畫重寫它的繪畫方法。這在我的情況下並不是最優的,因爲這將需要我每次只想繪製一個像素時繪製整個網格。

有什麼辦法讓畫布只畫一個像素而不是整個畫布?或者其他方式來完成我在這裏尋找的東西?

我寧願避免使用任何外部庫。

回答

1

您將需要重寫paint方法以顯示整個網格。

然而,你可以做的是創建一個BufferedImage翻轉一個像素,並使用Graphics.drawImage()在繪製方法中將整個圖像繪製到組件。

0

不幸的是,您必須重寫paint()並在每次調用paint()時渲染整個網格。這就是圖形組件的工作原理--Windows系統/ OS可以隨時請求重新繪製組件(例如,當窗口被重新顯示/調整大小/移動時)