我手头有一个看似非常简单的任务。我现在有一个网格(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,但是到目前为止,我所能想到的是,这个小部件只允许我通过覆盖它的paint方法来在它上面进行绘制。在我的例子中,这远不是最优的,因为这将需要我每次只绘制一个单独的像素时绘制整个网格。
有没有办法让canvas只画一个像素而不是整个画布?或者其他方法来完成我在这里寻找的东西?
我更希望避免使用任何外部库。
发布于 2012-10-09 23:01:16
您需要覆盖paint方法才能显示整个栅格。
但是,您可以做的是创建一个翻转一个像素的BufferedImage,并使用Graphics.drawImage()将整个图像绘制到paint方法中的组件。
发布于 2012-10-09 23:15:34
不幸的是,您必须覆盖paint()
并在每次调用paint()时呈现整个网格。这就是图形组件的工作方式- windows系统/OS可能会在任何时候请求重新绘制组件(例如。当窗口重新显示/调整大小/移动时)
https://stackoverflow.com/questions/12802497
复制相似问题