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 中找到了 Canvas,但是从我目前能够弄清楚的情况来看,这个小部件只允许我通过覆盖它的绘制方法来绘制它。在我的情况下,这远非最佳,因为这将需要我在每次我只想绘制一个像素时绘制整个网格。

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

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

4

2 回答 2

1

您将需要覆盖paint 方法以显示整个网格。

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

于 2012-10-09T15:01:15.587 回答
0

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

于 2012-10-09T15:15:33.767 回答