Компонент Java AWT и отступы панели / Граница - PullRequest
2 голосов
/ 09 июля 2011

Понятия не имею, почему я не могу найти решение для этого ... Я пытаюсь расположить некоторые компоненты 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);
  }
}

1 Ответ

2 голосов
/ 09 июля 2011

Горизонтальный (и вертикальный) разрыв по умолчанию 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));
...