繁体   English   中英

Java AWT应用程序窗口填充

[英]Java AWT application window padding

我正在尝试用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);
    }
}

我同意其他答案,建议使用Swing(改为使用JApplet),这将使所有事情变得更容易(例如,您可以调用setBorder并使用BorderFactory来创建边框),但是在这种情况下,您可以设置通过覆盖getInsets来插入:

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

随意替换10。

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

如果决定使用Swing,请参阅: 如何使用边框

AWT并不是最新的技术。 因此,除非您有在AWT中进行工作的特殊要求,否则我建议您检查一下现代的SwingSWT替代品-它们的行为比AWT更舒适,灵活,可自定义且可预测。

开发它们的一个原因就是,您试图在此处进行的视觉微调对于AWT来说是不必要的困难(如果不是不可能的话)。

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

还要注意,您可能很快将不得不升级到更复杂的布局管理器,例如GridBagLayout

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM