Java AWT组件和面板填充/边框

Java AWT组件和面板填充/边框,java,applet,panel,border,padding,Java,Applet,Panel,Border,Padding,我不知道为什么我找不到解决这个问题的办法。。。我正在尝试在流布局中布局一些AWT组件。唯一的问题是使用流布局时组件(面板)之间的“填充”。这就是小程序当前的外观: 我需要一种方法来设置小程序/面板,使两个面板(黑匣子)相互接触(无“填充”)。整个程序是自由摆动的,所有AWT,我计划保持这种方式。我觉得这是一个非常简单的解决方案,但我一直未能找到答案 这是小程序类的init()代码: public void init() { setLayout(new FlowLayout()); c1

我不知道为什么我找不到解决这个问题的办法。。。我正在尝试在流布局中布局一些AWT组件。唯一的问题是使用流布局时组件(面板)之间的“填充”。这就是小程序当前的外观:

我需要一种方法来设置小程序/面板,使两个面板(黑匣子)相互接触(无“填充”)。整个程序是自由摆动的,所有AWT,我计划保持这种方式。我觉得这是一个非常简单的解决方案,但我一直未能找到答案

这是小程序类的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);
  }
}
FlowLayout
的默认水平(和垂直)间隙设置为
5
。因此,必须将水平间隙明确设置为
0

第一种方法

在组件的布局上调用。由于
JPanel
的默认布局是
FlowLayout
,只需执行以下操作:

((FlowLayout)getLayout()).setHgap(0);
setLayout(new FlowLayout(FlowLayout.CENTER, 0, 5));
第二种方法

使用另一个
FlowLayout
构造函数。就是,。只需执行以下操作:

((FlowLayout)getLayout()).setHgap(0);
setLayout(new FlowLayout(FlowLayout.CENTER, 0, 5));