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

时间:2011-07-09 19:11:58

标签: java applet panel border padding

我不知道为什么我找不到这个解决方案...我试图在流布局中布局一些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);
  }
}

1 个答案:

答案 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));