我正在使用 swing 编写一个 Java 应用程序,我需要在其中绘制一个正方形上方的网格。为此,我使用了类drawLine(...)
提供的方法Graphics
。
一切正常,只是绘制每条线需要花费大量时间(50 条线超过 20 秒......)。我什至可以看到实时绘制的线条。一件奇怪的事情是水平线的绘制速度比垂直线快(几乎立即)。
我可能做错了什么。这是网格的代码。
public void drawGrid(Graphics g){
g.setColor(new Color(255, 255, 255, 20));
int width = getWidth();
int height = (int) (width * Utils.PLATE_RATIO);
int step = pixelSize*gridSpacing;
Color bright = new Color(255, 255, 255, 100);
Color transparent = new Color(255, 255, 255, 20);
for(int ix = insets.left + step;
ix < width; ix += step){
if(((ix - insets.left) / step) % 10 == 0){
g.setColor(bright);
}
else{
g.setColor(transparent);
}
g.drawLine(ix, insets.top, ix, height+insets.top);
}
for(int iy = insets.top+step;
iy < (insets.top + height); iy += step){
if(((iy - insets.top) / step) % 10 == 0){
g.setColor(bright);
}
else{
g.setColor(transparent);
}
g.drawLine(insets.left, iy, width + insets.left, iy);
}
}