Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задание 1 часть_В1-В34.docx
Скачиваний:
1
Добавлен:
19.09.2019
Размер:
3.05 Mб
Скачать
  1. Отформатировать текст по стп мгупи. Оформить рисунки и программный кода

В примере есть несколько интересных мест. Во-первых, обратите внимание на то, что метод установки менеджера расположения setLayout() не вызывался, потому что ъокнах JFrame (а также в окнах без рамки JWindow и диалоговых окнах JDialog) располо­жение BorderLayout применяется по умолчанию. Во-вторых, будьте осторожнее с исполь­зованием строк в качестве параметров метода add(). Так легко сделать трудно обнаружи- емую ошибку, в то время как ошибку при использовании констант сразу же обнаружит миилятор. Картина на экране в итоге получается следующая:

Как легко заметить, возможности полярного расположения довольно ограничены. В)ео создано специально для окон, но, тем не менее, иногда может помочь и в более каожных случаях. Об этом мы поговорим немного позднее.

[Последовательное расположение FlowLayout

; Последовательное расположение FlowLayout работает очень просто, но тем не менее Ьсоективно. Оно выкладывает компоненты в контейнер, как пирожки на противень: Вкед направо, сверху вниз, начиная с верхнего левого угла контейнера. Это расположе- Ешя устанавливается по умолчанию в панелях JPsnel. Основным свойством его следует Нризнать то, что компонентам всегда придается предпочтительный размер (например, В^хкк с текстом JLabel соответствует по размерам тексту). Рассмотрим простой пример:

  1. // FlowLayoutSample.java Р// Последовательное расположение

  2. import java.awt.*; import javax.swing.*;

  3. public class FlowLayoutSample extends JFrame {

  4. public FlowLayoutSample() {

  5. super("FlowLayoutSample") ; setSize(400, 200) ;

  6. setDefaultCloseOperation( EXIT_ON_CLOSE );

  7. // устанавливаем последовательное расположение с // выравниванием компонентов по центру setLayout( new FlowLayout( FlowLayout.CENTER ));

  8. // добавляем компоненты add( new JButton("Один")); add( new JButton("Два")); add( new JButton("Три"));

  9. II выводим окно на экран setVisible(true);

  10. 1

  11. public static void main(String[] args) {

  12. SwingUtilities.invokeLater( new Runnable() { public void run() { new FlowLayoutSample(); } });

  13. } I

  14. }

  15. Конструктор класса FlowLayout имеет три перегруженные версии: безпараметр: щ с параметрами выравнивания компонентов, с параметрами выравнивания компонент:* и расстояний между ними. В примере использована вторая версия, устанавливающая п>

  16. следовательное расположение по центру.

  17. Запустите программу с примером, и вы увидите, как работает менеджер последс =аг

  18. тельного расположения.

  1. Если места для всех компонентов достаточно, они размещаются горизонтально » ж ] ну строку. Уменьшите горизонтальный размер окна — как только места в одной страж 1 всем компонентам станет мало, лишние перейдут на строку ниже (расстояние межяи* строками и компонентами можно указать в конструкторе). Теперь уменьшайте разма»!

окна по вертикали — вы увидите, что компоненты, не помещающиеся в окно, просто ис­чезают из поля зрения! Это не какой-то недостаток последовательного расположения, как может показаться на первый взгляд, а только следствие его главного свойства: при последовательном расположении всегда сохраняется предпочтительный размер компонентов. Менеджер FlowLayoutнеизменно работает по такому правилу, и если места в контейнере становится мало, то он просто прячет «лишние» компоненты, а не уменьшает их раз­меры. Вторым по важности свойством менеджера расположения FlowLayoutследует при­знать то, что при вызове метода preferredLayoutSize() или minimumLayoutSize(), позволяюще­го узнать предпочтительный и минимальный размеры контейнера, в котором этот ме­неджер действует, метод возвращает размер, соответствующей ситуации расположения всех компонентов в одну строку. Это особенно важно при совмещении последовательно­го расположения с другими вариантами расположения. Вследствие этого свойства ме­неджеры других вариантов расположения будут стараться найти достаточно места для размещения компонентов в одну строку. Вскоре мы увидим совмещение в действии.

Поэтому использовать последовательное расположение следует только в контейне­ре, где достаточно места, или там, где контейнеру некуда будет «прятать» свои компонен­ты (пример мы рассмотрим в следующем разделе). Тем не менее, этот замечательный по своей простоте менеджер расположения очень хорош при организации несложных вариантов расположения.

Табличное расположение GridLayout

Как нетрудно догадаться по названию, менеджер расположения GridLayoutразделяет контейнер на таблицу с ячейками одинакового размера Количество строк и столбцов мож­но указать в конструкторе, причем существует возможность задать произвольное количе­ство либо строк, либо столбцов (но не одновременно). Все ячейки имеют одинаковый раз­мер.маленькие компоненты растягиваются по всем направлениям, большие компоненты сжимаются. Табличное расположение идеально подходит для ситуаций, где нужно разбить шнтейнер на несколько одинаковых частей с примерно одинаковым по размеру содержи­мым. В качестве первого примера рассмотрим окно с кнопками различных размеров:

  1. GridLayoutSample.java // Табличное расположение import java.awt.*; import javax.swing.*;

public class GridLayoutSample extends JFrame { public GridLayoutSample() ( super("GridLayoutSample"); setSize(300, 200); setLocation(100, 100);

setDefaultCloseOperation( EXIT_ON_CLOSE );

// вспомогательная панель JPanel grid = new JPanelO;

// первые два параметра конструктора GridLayout - // количество строк и столбцов в таблице // вторые два — расстояние между ячейками по X и Y GridLayout gl = new GridLayout(2, 0, 5, 12); grid.setLayout(gl);

// создаем 8 кнопок

for (int i=0; i<8; i++) {

grid.add(new JButton("Кнопка " + i));

}

// помещаем нашу панель в центр окна add(grid);

// устанавливаем оптимальный размер pack();

// показываем окно setVisible(true);

}

public static void main(String[] args) {

SwingUtilities.invokeLater(

new Runnable() { public void run() { new GridLayoutSample(); } ));

}

}

  1. Отформатировать таблицу по СТП МГУПИ

  1. Отформатировать текст по СТП МГУПИ, ввести формулы с помощью инструмента MSEquation