我有一个问题。我在我的JFrame中使用了Gridbaglayout。其中一个组件是JPanel。
我想为我的JPanel绘制网格线作为背景。例如,在下面的程序中,它应该产生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。我该如何解决这个问题,使得网格线背景看起来漂亮,没有任何额外的白色空间超出网格线?