java Swing绘制网格。韦尔德结果
所以我用graphics2d在JPanel上画了一个网格
但当我调整窗口大小时,结果会很奇怪
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D)g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
/*
* Draw the background
*/
boolean isWhite = false;
for(int x = 0; x < getSize().width/8; x++){
for(int y = 0; y < getSize().height/8; y++){
if(isWhite){
g2d.setColor(Color.white);
isWhite = false;
}else{
g2d.setColor(Color.LIGHT_GRAY);
isWhite = true;
}
g2d.fillRect(8*x, 8*y, 8, 8);
}
}
g2d.dispose();
}
因此,它不会绘制8x8正方形,而是绘制水平矩形(getSize()。宽度()x8)
更新
我正在画一个网格来填充整个JPanel。因此,当窗口调整大小时,网格将展开,这是可行的。但它会画出奇怪的形状(有时)。网格单元的恒定大小为8x8
# 1 楼答案
使用下一个修复程序: