Spec-Zone .ru
спецификации, руководства, описания, API
Домашняя страница > Создание GUI С JFC/Swing

Ответы: Разметка Компонентов в пределах Контейнера

Вопросы

В каждом из следующих вопросов выберите менеджера (ов) расположения, которому наиболее естественно подходят для описанного расположения. Предположите, что контейнер, которым управляет менеджер по расположению, является a JPanel. [Подсказка: Два раздела, которые могли бы помочь, являются Визуальным, Индексируют к Компонентам Swing и Подсказкам относительно Выбора менеджера по Расположению.]

Вопрос 1. У контейнера есть один компонент, который должен занять так много места насколько возможно

Layout1-1.png Layout1-2.png

a. BorderLayout
b. GridLayout
c. GridBagLayout
d. a и b
e. b и c

Ответ 1: d. BorderLayout и GridLayout легко имейте дело с этой ситуацией. Хотя Вы могли использовать GridBagLayout, это намного более сложно чем необходимый.


Вопрос 2. Контейнер ссорится компонентов, которые должны все быть выведены на экран в том же самом размере, заполняя container⠀™ s вся область.

Layout2-1.png Layout2-2.png

a. FlowLayout
b. GridLayout
c. BoxLayout
d. a и b

Ответ 2: b. Этот тип расположения того-же-самого-размера — является ли подряд, столбец, или сетка — что GridLayout является лучшим в.


Вопрос 3. Контейнер выводит на экран много компонентов в столбце с любым дополнительным пространством, идущим между первыми двумя компонентами.

Layout3-1.png Layout3-2.png

a. FlowLayout
b. BoxLayout
c. GridLayout
d. BorderLayout

Ответ 3: b. BoxLayout размечает компоненты или в столбце или в строке. Можно определить дополнительное пространство, используя невидимый компонент.


Вопрос 4. Контейнер может вывести на экран три абсолютно различных компонента в разное время, завися, возможно, от состояния программы или ввода данных пользователем. Даже если components⠀™ размеры отличаются, переключаясь от одного компонента до следующего shouldn⠀™ t изменяют количество места, отведенного для компонента.

Layout4-1.png

Layout4-2.png

a. SpringLayout
b. BoxLayout
c. CardLayout
d. GridBagLayout

Ответ 4: c. CardLayout существует, чтобы позволить компонентам совместно использовать то же самое пространство. Хотя более просто использовать a JTabbedPane компонент, чтобы управлять областью, CardLayout решение, когда Вы не хотите вкладки.

Упражнения

Упражнение 1. Реализуйте расположение описанный и показанный рассматриваемый 1.
Ответ 1: См. Layout1.java(в.java исходном файле). Вот код, который реализует расположение:

JPanel p = new JPanel(new BorderLayout());
p.add(createComponent("Component 1"),
                      BorderLayout.CENTER);
frame.setContentPane(p);


Упражнение 2. Реализуйте расположение описанные и показанные рассматриваемые 2.
Ответ 2: См. Layout2.java(в.java исходном файле). Вот код, который реализует расположение:

JPanel p = new JPanel(new GridLayout(1,0));
p.add(createComponent("Component 1"));
p.add(createComponent("Component 2"));
p.add(createComponent("Component 3"));
p.add(createComponent("Component 4"));
frame.setContentPane(p);


Упражнение 3. Реализуйте расположение описанные и показанные рассматриваемые 3.
Ответ 3: См. Layout3.java(в.java исходном файле). Вот код, который реализует расположение:

JPanel p = new JPanel();
p.setLayout(new BoxLayout(p, BoxLayout.PAGE_AXIS));
p.add(createComponent("Component 1"));
p.add(Box.createVerticalGlue());
p.add(createComponent("Component 2"));
p.add(createComponent("Component 3"));
p.add(createComponent("Component 4"));
frame.setContentPane(p);


Упражнение 4. Реализуйте расположение описанные и показанные рассматриваемые 4.
Ответ 4: См. Layout4.java(в.java исходном файле). Вот код, который реализует расположение:

...//Where the radio buttons are set up:
for (int i= 0; i < strings.length; i++) {
    ...
    rb[i].setActionCommand(String.valueOf(i));
    ...
}

...//Where the panel to contain the shared-space components is set up:
cards = new JPanel(new CardLayout());
for (int i = 0; i < strings.length; i++) {
        cards.add(createComponent(strings[i]), String.valueOf(i));
}

...//In the action listener for the radio buttons:
public void actionPerformed(ActionEvent evt) {
        CardLayout cl = (CardLayout)(cards.getLayout());
        cl.show(cards, (String)evt.getActionCommand());
}


Упражнение 5. Добавляя одну строку кода, сделайте программу, от которой Вы записали для дисплея Упражнения 2 компоненты справа налево, вместо от слева направо.

Layout2-3.png

Ответ 5: можно изменить горизонтальную ориентацию, используя setComponentOrientation метод, определенный Component class. Например:

p.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
«ПредыдущийTOC

Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь
.

Предыдущая страница: Вопросы и Упражнения: Разметка Компонентов в пределах Контейнера