java如何在JPanel上绘制网格线作为背景
我有个问题。我在JFrame中使用了Gridbaglayout。其中一个组件是JPanel
我想画一条网格线作为我的JPanel的背景。e、 在下面的程序中,它应该产生3条垂直线和3条水平线,但是它只显示2条垂直线和2条水平线。最后一行没有显示
另一个问题是,JPanel的大小似乎比我设定的要大。我通过线条的长度注意到了这一点,线条比JPanel白色背景短
public class drawLayout extends JComponent
{
public Dimension getPreferredSize() {
return new Dimension(600, 600);
}
public int getY() {
return 0;
}
public int getX() {
return 0;
}
@Override public void paintComponent(Graphics g)
{
g.setPaint(Color.GRAY);
for (int i = 0; i <= getSize().width; i += 300)
{
g2.drawLine(i, 0, i, getSize().height);
}
for (int i = 0; i <= getSize().height; i += 300)
{
g2.drawLine(0,i, getSize().width, i);
}
}
}
编辑:
http://www.freeimagehosting.net/image.php?1af16edc28.jpg
第一个问题解决了(网格线显示在JPanel上)。 另一个问题使我困惑。正如您在所附的图片上看到的,当查看网格的长度(标记为红色框)时,JPanel的大小似乎超过600。如何解决这个问题,使网格线背景看起来很漂亮,而网格线外没有任何额外的空白
# 1 楼答案
你将i增加300。两次测试后,我是600,你退出for循环。 尝试将尺寸设置为601或增加299。您还可以在比较中使用宽度+1和高度+1