Java gridlayout忽略了差距

时间:2012-08-14 21:35:00

标签: java swing layout grid-layout

我正在使用java中的跳棋板。 但我有一个奇怪的问题: 尽管我将vgap设置为0仍然会创建一个vgap。 高度方块之间有一个aprox 5p​​x的空间。 宽度没问题。 这是我的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

2 个答案:

答案 0 :(得分:3)

  • 您必须将JPAnel的LayoutManagerFlowLayout更改为BorderLayout或......,

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

    1. Diagram返回PreferredSize

    2. 是否可以通过容器

    3. 重新调整Diagram
    4. 如何以及在何处使用GridLayout

  • 在发布SSCCE

  • 后尽早获得更好的帮助

答案 1 :(得分:0)

我通过将图像加载到JPanel而不是JLabel来解决了这个问题 我把图像变成了BufferedImage 然后使用drawImage

将其绘制到JPanel上