我手边有一项看似非常简单的任务。我有一个网格(现在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方法来吸引它。在我的情况下,这远非最优,因为这将要求我每次想要绘制一个像素时绘制整个网格。
有没有办法让画布只绘制一个像素而不是整个画布?或者其他一些方法来完成我在这里寻找的东西?
我宁愿避免使用任何外部库。
答案 0 :(得分:1)
您需要覆盖绘制方法以显示整个网格。
但是,你可以做的是创建一个翻转一个像素的BufferedImage,然后使用Graphics.drawImage()将整个图像绘制到paint方法中的组件。
答案 1 :(得分:0)
不幸的是,每次调用paint()时都必须覆盖paint()
并渲染整个网格。这就是图形组件的工作方式 - Windows系统/操作系统可以随时请求重新绘制组件(例如,当窗口重新显示/调整大小/移动时)