WebClub - Всероссийский Клуб Веб-разработчиков
WebClub.RU » Архив » Использование BorderLayout

Использование BorderLayout


Дата публикации: 17-03-2013

В предыдущей статье, мы говорили об основных диспетчерах размещения и размещении потока. Теперь, давайте поговорим об одном из наиболее популярных диспетчеров размещения, BorderLayout. BorderLayout делит отображаемую область контейнера на 5 разделов: EAST (право), WEST (лево), NORTH (верхняя часть), SOUTH (нижняя часть) и CENTER (центр). Далее показаны некоторые интересные характеристики BorderLayout:

1. Он выставляет высоту компонентов в значения NORTH и SOUTH, или только одно. Если только одно, то он устанавливает ширину этого компонента (ов) в максимальную ширину контейнера.
2. Он выставляет ширину компонентов в значения EAST и WEST, или только одно. Если только одно, он устанавливает высоту этого компонента (ов) в максимальную высоту контейнера.
3. Он распределяет остаток области, если выбрано только одно значение, в CENTER.

Обратите внимание, что выставляемые высота и ширина получаются при использовании метода getPreferredSize(). Вам нужно использовать метод add(), который использует ограничения для добавления компонентов в контейнер. Параметр ограничения предоставляет для диспетчера размещения информацию о том, куда добавить специфический компонент. Следующая программа показывает это:

import java.awt.*;

/** Demonstrates the use of BorderLayout. */
public class BorderLayoutDemo extends Frame {

/** Initializes the demo. */
public BorderLayoutDemo() {
super("BorderLayout Demo");
}

/** Demonstrates the use of BorderLayout. */
public void demonstrate() {

// Set the layout
setLayout(new BorderLayout());

// Create the components

// The label for the comments
Label cmtLbl = new Label("Enter your comments:");

// The text area for comments
TextArea comments = new TextArea("");

// The button to accept the comments
Button okButn = new Button("Ok");

// The button to reject the comments
Button cancelButn = new Button("Cancel");

// The panel to hold the buttons
Panel butnPanel = new Panel(new FlowLayout());

// Add the buttons to the panel
butnPanel.add(okButn);
butnPanel.add(cancelButn);

// Add the components to the frame
add(cmtLbl, BorderLayout.NORTH);
add(comments, BorderLayout.CENTER);
add(butnPanel, BorderLayout.SOUTH);

// Do the layout
pack();

// Show
setVisible(true);

}

/** Main. */
public static void main(String[] args) {

BorderLayoutDemo bld = new BorderLayoutDemo();
bld.demonstrate();

}

}
Комментарии пользователя делают эту программу простой. Здесь, метод main создает demo образец и запускает его, используя метод demonstrate(). Этот метод сначала устанавливает диспетчер размещения в BorderLayout, а затем создает компоненты для demo: метку, текстовую область и панель кнопок. Заметьте, что панель кнопок имеет FlowLayout. Обратите особое внимание на вызовы метода add() для добавления этих компонентов к фрейму. Второй параметр для каждого такого обращения указывает, куда добавить соответствующий компонент. Наконец, он выполняет размещение и отображает фрейм.
Еще несколько интересных вещей относительно этого диспетчера размещения. Вы можете управлять горизонтальным и вертикальным пространством между компонентами. Только один компонент может быть добавлен к области. Рассмотрите следующий фрагмент кода:

//...
// Add components to the container
add(component1, BorderLayout.NORTH);
add(component2, BorderLayout.NORTH);
//...

В этом случае, только "component2" был бы добавлен в верхнюю часть контейнера. Но это не означает, что вы не можете показывать больше одного компонента в области. Не забудьте, мы добавили панель с 2 кнопками в вышеупомянутой программе. В этом прелесть диспетчеров размещения. Комбинация диспетчеров размещения может дать очень гибкий GUI.

Популярное

Не так давно в сети появился новый сервис, под названием Dead Man Zero. Этот сервис сделал...
Рынок социальных площадок уже давно стал стабильным. Несмотря на то, что время от времени...
Artisteer 4 – единственный в своем роде продукт, позволяющий автоматизировать работу над созданием...
Март 2017 (1)
Февраль 2017 (3)
Январь 2017 (1)
Август 2016 (1)
Май 2016 (2)
Ноябрь 2015 (1)

Карта сайта: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41

Друзья сайта

Хотите продать свой сайт?
- Мы быстро и удобно для Вас сможем его купить:
  • Заявка на продажу сайта
  • Раcсматриваем цены на каждый сайт в индивидуальном порядке.

    Случайная цитата

    Неизвестный автор:

    "Чужим контентом не прославишься."

    Опрос

    Какой аудио плеер Вы используете?

    Winamp
    Light Alloy
    foobar2000
    Apollo
    AIMP
    1by1
    iTunes
    jetAudio
    Другой...