【问题标题】:Java AWT Component and Panel Padding/BorderJava AWT 组件和面板填充/边框
【发布时间】:2011-10-01 23:42:57
【问题描述】:

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

我需要一种方法来设置小程序/面板,以便两个面板(黑框)相互接触(没有“填充”)。整个程序是免费的 Swing,所有 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);
  }
}

【问题讨论】:

    标签: java applet panel border padding


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2011-01-06
      • 2012-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 2022-01-24
      • 2011-05-18
      相关资源
      最近更新 更多