Spec-Zone .ru
спецификации, руководства, описания, API
|
В каждом из следующих вопросов выберите менеджера (ов) расположения, которому наиболее естественно подходят для описанного расположения. Предположите, что контейнер, которым управляет менеджер по расположению, является a JPanel
. [Подсказка: Два раздела, которые могли бы помочь, являются Визуальным, Индексируют к Компонентам Swing и Подсказкам относительно Выбора менеджера по Расположению.]
Вопрос 1. У контейнера есть один компонент, который должен занять так много места насколько возможно
a. BorderLayout
b. GridLayout
c. GridBagLayout
d. a и b
e. b и c
Ответ 1: d. BorderLayout
и GridLayout
легко имейте дело с этой ситуацией. Хотя Вы могли использовать GridBagLayout
, это намного более сложно чем необходимый.
Вопрос 2. Контейнер ссорится компонентов, которые должны все быть выведены на экран в том же самом размере, заполняя containerâ s вся область.
a. FlowLayout
b. GridLayout
c. BoxLayout
d. a и b
Ответ 2: b. Этот тип расположения того-же-самого-размера — является ли подряд, столбец, или сетка — что GridLayout
является лучшим в.
Вопрос 3. Контейнер выводит на экран много компонентов в столбце с любым дополнительным пространством, идущим между первыми двумя компонентами.
a. FlowLayout
b. BoxLayout
c. GridLayout
d. BorderLayout
Ответ 3: b. BoxLayout
размечает компоненты или в столбце или в строке. Можно определить дополнительное пространство, используя невидимый компонент.
Вопрос 4. Контейнер может вывести на экран три абсолютно различных компонента в разное время, завися, возможно, от состояния программы или ввода данных пользователем. Даже если componentsâ размеры отличаются, переключаясь от одного компонента до следующего shouldnâ t изменяют количество места, отведенного для компонента.
a. SpringLayout
b. BoxLayout
c. CardLayout
d. GridBagLayout
Ответ 4: c. CardLayout
существует, чтобы позволить компонентам совместно использовать то же самое пространство. Хотя более просто использовать a JTabbedPane
компонент, чтобы управлять областью, CardLayout
решение, когда Вы не хотите вкладки.
Упражнение 1. Реализуйте расположение описанный и показанный рассматриваемый 1.
Ответ 1: См. Layout1.java
. Вот код, который реализует расположение:
JPanel p = new JPanel(new BorderLayout()); p.add(createComponent("Component 1"), BorderLayout.CENTER); frame.setContentPane(p);
Упражнение 2. Реализуйте расположение описанные и показанные рассматриваемые 2.
Ответ 2: См. Layout2.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
. Вот код, который реализует расположение:
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
. Вот код, который реализует расположение:
...//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 компоненты справа налево, вместо от слева направо.
Ответ 5: можно изменить горизонтальную ориентацию, используя setComponentOrientation
метод, определенный Component
class. Например:
p.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);