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

// 2. Поочередно создаются "полосы", на которые

// был разбит интерфейс на этапе анализа

// а) первое текстовое поле и надпись к нему

JPanel name =

BoxLayoutUtils.createHorizontalPanel() ;

JLabel nameLabel = new JLabel("Имя:");

name.add(nameLabel);

name.add(BoxLayoutUtils.createHorizontalStrut(12)); JTextField nameField = new JTextField(15); name.add(nameField);

// б) второе текстовое поле и надпись к нему

JPanel password =

BoxLayoutUtils.createHorizontalPanel() ;

JLabel pas-swrdLabel = new JLabel ("Пароль :") ; password.add(passwrdLabel) ;

password.add(BoxLayoutUtils.createHorizontalStrut(12)) JTextField passwrdField = new JTextField(15); password.add(passwrdField);

// в) ряд кнопок

JPanel flow = new JPanel( new FlowLayout(

FlowLayout.RIGHT, 0, 0) );

JPanel grid = new JPanel( new GridLayout(

1,2,5,0) ) ;

JButton ok = new JButton("OK");

JButton cancel = new JButton("Отмена"); grid.add(ok); grid.add(cancel); flow, add (grid) ;

// 3. Проводятся необходимые действия по // выравниванию компонентов, уточнению их // размеров, приданию одинаковых размеров // а) согласованное выравнивание // вложенных панелей BoxLayoutUtils.setGroupAlignmentX(

Component.LEFT_ALIGNMENT, name, password, main, flow) ;

//б) центральное выравнивание надписей // и текстовых полей BoxLayoutUtils.setGroupAlignmentY(

Component.CENTER_ALIGNMENT,

nameField, passwrdField, nameLabel, passwrdLabel); // в) одинаковые размеры надписей к текстовым полям GUITools.makeSameSize(nameLabel, passwrdLabel);

// д) устранение "бесконечной" высоты текстовых полей GUITools.fixTextFieldSize(nameField);

GUITools.fixTextFieldSize(passwrdField);

// 4. Окончательный "сбор" полос в интерфейс main.add(name);

main.add(BoxLayoutUtils.createVerticalSbrut(12)) ; main.add(password);

main.add(BoxLayoutUtils.createVerticalStrut(17)); main, add (flow) ;

// готово returnmain;

}

// тестовый метод для проверки диалогового окна

>г.; вы просто привязываете к компонентам принадлежащие новой программе слушатели событий и получаете уже спроектированный и проверенный в работе элемент пользова­тельского интерфейса программы. Как предоставлять доступ к компонентам диалогового : кна — дело вкуса. Можно вообще не показывать компоненты, предоставляя лишь текст из текстовых полей и оповещая о нажатии кнопок. Действуя таким образом, можно создать лелую библиотеку своих интерфейсов, и во много раз ускорить разработку приложения.

Реализация: гибкая сетка

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

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

// этот метод будет возвращать панель с // созданным расположением privateJPanelcreateGUI() {

// 1. Основная панель

//В конструкторе задаем "рост" второго столбца JPanelmain = newJPanel(newMigLayout("", "[][grow]"));

// первый ряд сетки

main.add(newJLabel("Имя:"));

main.add(new JTextField(15), "gap rel, wrap rel, growx");

// второй ряд сетки

main.add(new JLabel("Пароль:"));

main.add(new JTextField(15), "gap rel, wrap unrel, growx");

// третий ряд сетки — кнопки одинакового размера // пропускаем первую ячейку, разбиваем вторую на две

main.add(new JButton("OK"), "skip 1, split, sg buttons, align

right");

main.add(new JButton("Отмена"), "sg buttons");

// готово return main;

}

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

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

относится к классу некорректных задач.

Поясним, что это означает. Пусть ядро К (х,s) вещественно и сим­метрично, т. е. K(s, х) — К(х, s). Предположим также, что К(х, s) и х непрерывны. Тогда существует полная ортонормированная система собственных функций п оператора Q:

Вариант № 13