我正在使用java中的跳棋板。 但我有一个奇怪的问题: 尽管我将vgap设置为0仍然会创建一个vgap。 高度方块之间有一个aprox 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
答案 0 :(得分:3)
您必须将JPAnel的LayoutManager
从FlowLayout更改为BorderLayout或......,
FlowLayout
非常接受PreferredSize
来自将JCompoments放入容器(JPanel
),一切都取决于
Diagram
返回PreferredSize
是否可以通过容器
Diagram
如何以及在何处使用GridLayout
在发布SSCCE
答案 1 :(得分:0)
我通过将图像加载到JPanel而不是JLabel来解决了这个问题 我把图像变成了BufferedImage 然后使用drawImage
将其绘制到JPanel上