0

我正在用java做一个跳棋板。但是我有一个奇怪的问题:即使我将 vgap 设置为 0,它仍然会创建一个 vgap。高度正方形之间有大约 5px 的空间。宽度还可以。这是我的 Diagram 对象的布局代码:

this.setLayout(new GridLayout(10, 10, 0, 0));
this.setPreferredSize(new Dimension(230, 230));

这就是我实现图表的地方:

// The jpanel that has to contain the diagram
jpanel.setLayout(new FlowLayout());
add(jpanel, BorderLayout.WEST);
// The placement of the diagram in that jpanel
jp.add(new diagram());

这是它的外观:

[][][][][][][][][]
<The spacing that I have to get removed>
[][][][][][][][][]

但它应该是这样的:

[][][][][][][][][]
[][][][][][][][][]

^
|
no spacing between them
4

2 回答 2

3
  • 您必须将LayoutManagerJPanel 从FlowLayout更改为BorderLayout或...,

  • FlowLayout相当接受PreferredSize来自将 JCompoments 放入容器(JPanel)中,一切都取决于

    1. Diagram返回PreferredSize

    2. 是否以及如何Diagram使用容器调整大小

    3. 如何以及在何处真正使用GridLayout

  • 尽快发布SSCCE以获得更好的帮助

于 2012-08-14T21:50:36.390 回答
0

我通过将图像加载到 JPanel 而不是 JLabel 来解决问题 我将图像制作成 BufferedImage 然后使用 drawImage 将其绘制到 JPanel

于 2012-08-14T22:32:08.930 回答