简单的绘画

时间:2012-10-09 14:39:21

标签: java awt

我手边有一项看似非常简单的任务。我有一个网格(现在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
  }
}

我一直在环顾四周,很快就找到了Canvas,但是从我迄今为止能够弄清楚的,这个小部件只允许我通过覆盖它的paint方法来吸引它。在我的情况下,这远非最优,因为这将要求我每次想要绘制一个像素时绘制整个网格。

有没有办法让画布只绘制一个像素而不是整个画布?或者其他一些方法来完成我在这里寻找的东西?

我宁愿避免使用任何外部库。

2 个答案:

答案 0 :(得分:1)

您需要覆盖绘制方法以显示整个网格。

但是,你可以做的是创建一个翻转一个像素的BufferedImage,然后使用Graphics.drawImage()将整个图像绘制到paint方法中的组件。

答案 1 :(得分:0)

不幸的是,每次调用paint()时都必须覆盖paint()并渲染整个网格。这就是图形组件的工作方式 - Windows系统/操作系统可以随时请求重新绘制组件(例如,当窗口重新显示/调整大小/移动时)