2011-07-09 35 views
2

我不知道为什么我找不到解决方案...我试图在流布局中布置一些AWT组件。唯一的问题是使用流布局时组件(面板)之间的“填充”。这就是小程序目前的样子:http://i.stack.imgur.com/2KZgD.pngJava AWT组件和面板填充/边框

我需要一种方法来设置小程序,使两个面板(黑匣子)触摸(无“填充”)。整个程序都是Swing免费的,都是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); 
} 

这是我使用パ类:

public class TestPanel extends Panel { 
    public void paint(Graphics g) { 
    g.setColor(Color.BLACK); 
    g.fillRect(0, 0, this.getPreferredSize().width, this.getPreferredSize().height); 
    } 
} 

回答

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)); 
+0

啊,非常感谢!这完全解决了它。 – Tanaki

+0

@Tanaki,不客气! :) – mre