Java AWT应用程序窗口填充

时间:2010-01-18 20:47:20

标签: java layout window awt

我正在尝试用Java构建一个简单的AWT应用程序。我希望主窗口中的所有容器都按位分开。我可以通过在BorderLayout构造函数中设置Hgap和Vgap来实现这一点(见下文)。

但是,我无法弄清楚如何在容器和主窗口的边缘之间放置一个盖子。如何在主窗口中添加几个填充像素?

import java.awt.*;
import java.applet.Applet;

public class LayoutTest extends Applet {

    public void init() {

        BorderLayout layout = new BorderLayout(8, 8);

        setLayout(layout);

        add(new Button("Left"), BorderLayout.CENTER);
        add(new Button("Right"), BorderLayout.EAST);
    }
}

3 个答案:

答案 0 :(得分:4)

我同意其他答案,并建议使用Swing(使用JApplet代替),这会使各种事情变得更容易(例如,您可以调用setBorder并使用BorderFactory创建边框),但在您的情况下你可以通过覆盖getInsets来设置插图:

   @Override
   public Insets getInsets()
   {
      return new Insets(10,10,10,10);
   }

用你喜欢的任何东西替换10。

似乎没有一个二传手,或者我会说使用它。如果在AWT Applet的情况下有更好的方法,请有人纠正我。

如果您决定使用Swing,请参阅:How to Use Borders

答案 1 :(得分:1)

AWT不是该块的最新技术。因此,除非您有特定的要求在AWT中工作,否则我建议您查看现代替换SwingSWT - 比AWT更舒适,更灵活的可自定义和可预测的行为。< / p>

开发它们的一个原因恰恰是你在这里尝试进行的视觉微调是不必要的(如果不是不可能的话)AWT。

答案 2 :(得分:0)

虽然您可能可以设置applet的insets,但我建议转到Swing(扩展javax.swing.JApplet)。然后将JPanel设置为内容窗格,并设置适当宽度的EmptyBorder

另请注意,您可能很快就需要升级到更复杂的布局管理器,例如GridBagLayout