我有个问题。我在我的 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。我该如何解决这个问题,使网格线背景看起来不错,而在网格线之外没有任何额外的空白?