我不知道为什么我找不到这个解决方案...我试图在流布局中布局一些AWT组件。唯一的问题是使用流布局时组件(面板)之间的“填充”。这就是applet目前的样子:http://i.stack.imgur.com/2KZgD.png
我需要一种方法来设置小程序/面板,以便两个面板(黑框)接触(没有'填充')。整个程序是Swing free,所有AWT,我打算保持这种方式。我觉得这是一个非常简单的解决方案,但我找不到答案。
这是applet类的init()代码:
public void init() {
setLayout(new FlowLayout());
c1 = new TestPanel();
c2 = new TestPanel();
c1.setPreferredSize(new Dimension(640, 480));
c2.setPreferredSize(new Dimension(100, 480));
add(c1);
add(c2);
}
这是我正在使用的TestPanel类:
public class TestPanel extends Panel {
public void paint(Graphics g) {
g.setColor(Color.BLACK);
g.fillRect(0, 0, this.getPreferredSize().width, this.getPreferredSize().height);
}
}
答案 0 :(得分:2)
FlowLayout
的默认水平(和垂直)间距设置为5
。因此,您必须明确将水平差距设置为0
。
第一种方法
在组件的布局上调用setHgap(...)
。由于JPanel
的默认布局为FlowLayout
,因此只需执行以下操作:
((FlowLayout)getLayout()).setHgap(0);
第二种方法
使用另一个FlowLayout
构造函数。也就是FlowLayout(int align, int hgap, int vgap)
。并简单地执行以下操作:
setLayout(new FlowLayout(FlowLayout.CENTER, 0, 5));