- •1 Лабораторная работа №1. LibreOffice
- •1.1. Запуск LibreOffice Writer
- •1.2. Ввод текста
- •1.3. Форматирование текста
- •1.4. Сохранение документа
- •1.5. Использование панелей инструментов
- •1.6. Добавление новых возможностей на панель инструментов.
- •1.7. Редактирование текста
- •1.8. Параметры страницы
- •1.9. Оформление абзацев (Paragraphs)
- •1.10. Разделы (Sections) и разрывы
- •1.11. Оглавление и указатели.
- •1.12. Вставка рисунка в текст.
- •1.13. Формулы
- •1.14. Стили и форматирование
- •1.15. .Автозамена и параметры автозамены
- •1.16. Задание.
- •2 Изучение макросов LibreOffice Writer
- •2.1. Объекты и классы.
- •2.2. Переменные и объекты в Basic
- •2.3. Операторы Basic
- •2.4. Процедуры и функции.
- •2.5. Создание макроса в LibreOffice
- •2.6. Задания Макросы LibreOffice Writer.
- •3 Лабораторная №2 Изучение электронных таблиц LibreOffice Calc
- •3.1. Общие сведения об электронной таблице Calc пакета LibreOffice.
- •3.2. Структура электронной таблицы
- •3.3. Построение диаграмм
- •3.4. Задание 1.
- •3.5. Задание 2.
- •4 Лабораторная работа №3 Использование Calc как базы данных, изучение макросов
- •4.1. Фильтрация данных
- •4.2. Сводные таблицы.
- •4.3. Итоговые поля и группировка
- •4.4. Изучение макросов Calc Basic
- •4.4.1 Вычисление премиальных по процентам
- •4.4.2 Начисление премиальных. Использование функции.
- •4.4.3 Вычисление формул, реализация вычислительных функций.
- •5.1. Начальная загрузка компьютера
- •5.2. Что же такое операционная система?
- •5.3. Операционная система DOS.
- •5.4. Что понимается под файлом.
- •5.5. ЗАДАНИЕ
- •6 Лабораторная работа №5 Изучение операционной системы Windows и оболочки Far
- •6.1. Внешний вид Far.
- •6.2. Основные команды Far manager
- •6.3. Работа с панелями
- •6.4. Вывод оглавления диска
- •6.5. Просмотр содержимого диска
- •6.6. Сортировка списка файлов
- •6.7. Запуск программ
- •6.8. Создание папок
- •6.9. Просмотр дерева папок
- •6.10. Копирование файлов
- •6.11. Удаление файлов
- •6.12. Работа с несколькими файлами
- •6.13. Поиск файлов
- •6.14. Быстрый поиск файла
- •6.15. Создание текстовых файлов
- •6.16. Просмотр текстовых файлов
- •6.17. Редактирование текстовых файлов
- •6.18. Режим быстрого просмотра
- •6.19. Поиск папки
- •6.20. Использование фильтра
- •6.21. Изменение атрибутов файлов
- •6.22. Меню команд пользователя
- •6.23. Определение действий Far в зависимости от расширения имени файла
- •6.24. Работа с FTP клиентом
- •7 Изучение операционной системы Windows.
- •8 Изучение Форм и визуальных элементов управления в OpenOffice или LibreOffice.
- •8.1. Изучение msgbox
- •8.2. Создание Диалогового окна со строкой ввода.
- •8.3. Создание диалога
- •8.4. Реализация диалога с кнопкой
- •8.5. Модель объекта
- •8.6. Изучение Форм и элементов управления
- •8.7. Изучение флажков.
- •8.8. Изучение Переключателей.
- •8.9. Текстовые поля
- •8.10. Список
- •8.11. Поле со списком
- •8.12. Макрос реализующий использование текстового поля и списков
- •8.13. Элемент Счетчик
- •8.14. Самостоятельное задание
- •9 Изучение Java
- •9.1. Три принципа ООП.
- •9.2. Реализация программы на Java
- •9.3. Использование NetBeans.
- •9.4. Что такое интерфейсы.
- •9.5. Система Swing
- •9.5.1 Класс Japplet
- •9.5.2 Значки и метки
- •9.5.3 Текстовые поля
- •9.5.4 Кнопки
- •9.5.5 Класс JButton
- •9.5.6 Флажки
- •9.5.7 Переключатели
- •9.5.8 Поля со списком
- •9.5.9 Панели со вкладками
- •9.5.10 Панели прокрутки
- •9.5.11 Деревья
- •9.5.12 Таблицы
- •9.5.13 Использование GridBagLayout
- •10 Приложения — Помощь при выполнении первой и второй лабораторных работ, изучение Writer и Calc.
- •10.1. LibreOffice
- •10.1.1 Запуск LibreOffice Writer
- •10.1.2 Ввод текста
- •10.1.3 Правка текста
- •10.1.4 Форматирование текста
- •10.1.5 Сохранение документа
- •10.1.6 Использование панелей инструментов
- •10.1.7 Добавление новых возможностей на панель инструментов.
- •10.1.8 Редактирование текста
- •10.1.9 Параметры страницы
- •10.1.10 Оформление абзацев (Paragraphs)
- •10.1.11 Разделы (Sections) и разрывы
- •10.1.12 Оглавление и указатели.
- •10.1.13 . Вставка рисунка в текст.
- •10.1.14 . Формулы
- •10.1.15 Стили и форматирование
- •10.1.16 Задание
- •10.2. Изучение электронных таблиц LibreOffice Calc
- •10.2.1 Общие сведения об электронной таблице Calc пакета LibreOffice.
- •10.2.2 Структура электронной таблицы
- •10.2.3 Построение диаграмм
- •10.2.4 Задание 1.
- •10.2.5 Задание 2.
158
Рисунок 80 - Вкладка Colors окнаапплета JTabbedPaneDemo
Рисунок 81 - Вкладка Flavors окнаапплета JTabbedPaneDemo
9.5.10Панели прокрутки
Панель прокрутки (scroll pane) — компонент, который представляет прямоугольную область, в которой компонент может быть просмотрен. В случае необходимости в панель можно добавить горизонтальную и/или вертикальную полосы прокрутки. Панели прокрутки реализованы в Swing классом JScrollPane, который расширяет JComponent. Вот некоторые из его конструкторов:
JScrollPane(Component camp)
JScroiiPane(int vsb, int hsb)
JScrollPane(Component camp, int vsb, int hsb)
Здесь comp — компонент, который будет добавлен в панель прокрутки; vsb и hsb — int- константы, которые определяются; когда нужно показывать вертикальные и горизонтальные полосы прокрутки в панели прокрутки. Эти константы определены интерфейсом ScrollPaneConstants. Некоторые примеры этих констант описаны в табл. 8.
Таблица 8 - Константы интерфейса ScrollPaneConstants
Класс |
Описание |
horizontal_scrollbar_always |
Всегда обеспечивает горизонтальную полосу |
|
прокрутки |
horizontal_scrollbar_as_needed |
Обеспечивает горизонтальную полосу прокрутки, если |
|
необходимо |
vertical_scrollbar_always |
Всегда обеспечивает вертикальную полосу |
|
159 |
|
прокрутки |
vertical_scrollbar_AS_needed |
Обеспечивает вертикальную полосу прокрутки, если |
|
необходимо |
Для алгоритма создания апплета с панелью прокрутки необходимо:
1.Создать Объект JComponent.
2.Создать объект JScrollPane. (Аргументы конструктора определяют компонент и установку вертикальных и горизонтальных полос прокрутки.)
3.Добавить панель прокрутки в панель содержания апплета.
Следующий пример иллюстрирует панель прокрутки. Сначала получена панель содержания объекта jApplet, и в качестве ее менеджера компоновки назначено граничное размещение. Потом создан объект JPanel, и к нему добавлены четыре сотни кнопок, размещенных в двадцати столбцах. Затем создается панель прокрутки и добавляется в панель содержания. Это приводит к появлению вертикальной и горизонтальной полос прокрутки, которые вы можете использовать для листания набора кнопок в этом представлении.
import java.awt.*; import javax.swing.*; /*
<applet code="JScrollPaneDemo" width=300 height=250> </applet>
*/
public class JScrollPaneDemo extends JAppiet {
public void init () {
// получить панель содержания Container contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());
// добавить в панель 400 кнопок . JPanel jp = new JPanelO; jp.setLayout(new GridLayout(20, 20)}; int b = 0;
for(int i = 0; i < 20; i++) { for(int j = 0; j < 20; j++) {
jp.addjnew JButton("Button " + b)); ++b;
}
}
// создать панель прокрутки с полосами прокрутки
int v = ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;
int h = ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED; J ScrollPane jsp = new JScrollPane(jp, v, h);
// добавить панель прокрутки в центр панели содержания content Pane, add (jsp, Border-Layout .CENTER) ;
160
}
}
Вывод этого апплета представлен на рис. 75.
Рисунок 82 - Окно апплета JScrollPaneDemo
9.5.11Деревья
Дерево (tree) — компонент, который представляет иерархический вид данных. Пользователь имеет возможность развернуть или свернуть индивидуальные поддеревья в этом показе. Деревья реализованы в Swing классом JTree, который расширяет JComponent. Вот некоторые из его конструкторов:
JTree (Hashtable ht)
JTree(Object abj[ ])
JTree(TreeNode tn)
JTree (Vector v)
Первая форма создает дерево, в котором дочерней вершиной является каждый элемент хэш-таблицы ht. Во второй форме дочерней вершиной является каждый элемент массива obj. В третьей форме параметр tn указывает корневой узел дерева. Наконец, последняя форма использует элементы векторного параметра v как дочерние вершины.
Когда узел разворачивается или сворачивается, объект JTree генерирует события. Методы AddTreeExpansionListener() и removeTreeExpansionListener() позволяют блокам прослушивания регистрировать или отменять регистрацию для этих уведомлений. Сигнатуры этих методов:
void addTreeExpansionListener(TreeExpansionListener tel) void removeTreeExpansionListener (TreeExpansionListener tel)
Здесь tel — объект блока прослушивания.
161
Чтобы транслировать щелчок мыши на определенной точке дерева в ветвь (путь) дерева используется метод GetPathForLocation (). Его сигнатура:
TreePath getPathForLocation(int х, int у)
Здесь х и у — координаты указателя мыши, где выполнен щелчок. Возвращаемое значение — объект TreePath, который инкапсулирует информацию относительно узла дерева, выбранного пользователем.
Класс TreePath инкапсулирует информацию о пути к специфическому узлу дерева. Он обеспечивает несколько конструкторов и методов. В этой книге используется только метод toString (). Он возвращает строковый эквивалент пути дерева.
Интерфейс TreeNode объявляет методы, которые получают информацию относительно узла дерева. Например, возможно получить ссылку к родительскому узлу или перечислению дочерних узлов. Интерфейс MutabieTreeNode расширяет TreeNode. Он объявляет методы, которые могут вставлять и удалять дочерние узлы или изменять родительский узел.
Класс DefaultMutableTreeNode реализует интерфейс MutabieTreeNode. Он представляет узел в дереве. Ниже показан один из его конструкторов:
DefaultMutableTreeNode(Object obj)
Здесь obj — объект, который будет включен в этот узел дерева. Новый узел дерева не имеет родительского или дочернего узла.
Чтобы создавать иерархию узлов дерева, можно использовать метод add () класса
DefaultMutableTreeNode. Его сигнатура:
void add(MutabieTreeNode child)
Здесь child — изменяемый узел дерева, который должен быть добавлен как дочерний к текущему узлу.
События расширения дерева (tree expansion events) описаны классом
TreeExpansionEvent в пакете javax.swing.event. Метод getPath () этого класса возвращает объект TreePath, который описывает путь к измененному узлу. Его сигнатура:
TreePath getPath ()
Интерфейс TreeExpansionListener обеспечивает следующие два метода:
void treeCollapsed(TreeExpansionEvent tee) void (TreeExpansionEvent tee)
Здесь tee — событие расширения дерева. Первый метод вызывается, когда поддерево сворачивается, а второй — когда поддерево становится видимым (разворачивается).
Шаги алгоритма создания апплета с деревом таковы:
1.Создать Объект Jtree.
2.Создать объект JScrollPane. (Аргументы конструктора определяют дерево и установку вертикальных и горизонтальных полос прокрутки.)
162
3.Добавить дерево к панели прокрутки.
4.Добавить панель прокрутки к панели содержания апплета.
Следующий пример иллюстрирует, как можно создавать дерево и распознавать щелчки мыши на нем.
import j ava.awt.*; import j ava.awt.event.*; import j avax.swing.*; import javax.swing.tree.*; /*
<applet code="JTreeEvents" width=400 height=200> </applet>
*/
public class JTreeEvents extends JApplet { JTree tree;
JTextField jtf;
public void init () {
//получить панель содержания Container contentPane = getContentPane();
//установить менеджер компоновки contentPane.setLayout(new BorderLayout());
//создать корневой узел дерева
DefaultMutableTreeNode top = new DefaultMutableTreeNode("Options");
II создать поддерево "А"
DefaultMutableTreeNode а = new DefaultMutableTreeNode("A"); top.add(a);
DefaultMutableTreeNode al = new DefaultMutableTreeNode ("Al"); a.add(al) ;
DefaultMutableTreeNode a2 = new DefaultMutableTreeNode ("A2"); a.add(a2);
II создать поддерево "В"
DefaultMutableTreeNode b = new DefaultMutableTreeNode (“B”); top.add(b);
DefaultMutableTreeNode bl = new DefaultMutableTreeNode (“B1”); b.add(b1);
DefaultMutableTreeNode b2 = new DefaultMutableTreeNode (“B2”); b.add(b2) ;
DefaultMutableTreeNode b3 = new DefaultMutableTreeNode (“B3”); b.add(b3);
//создать дерево tree = new Jtree(top);
//добавить дерево в панель прокрутки
int v = ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;
163
int h = ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED; JScrollPane jsp = new JScrollPane(tree, v, h);
II добавить панель прокрутки в панель содержания contentPane.add(jsp, BorderLayout.CENTER);
//добавить текстовое поле к апплету jtf = new JTextFieldC", 20);
contentPane.add(jtf, BorderLayout.SOUTH);
//анонимный внутренний класс для обработки щелчков мыши tree.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent me) { doMouseClicked(me);
}
}};
}
void doMouseClicked(MouseEvent me) {
TreePath tp = tree.getPathForLocation(me.getX(), me.getYO); if(tp != null)
jtf.setText(tp.toString () ); else
jtf.setText ('");
}
}
Метод init () получает панель содержания для апплета. Затем создается объект DefaultMutabieTreeNode, маркированный как Options (Параметры). Это — корневой узел иерархии дерева. Далее создаются дополнительные узлы дерева, и вызывается метод add (), чтобы подключить эти узлы к дереву. В качестве аргумента конструктора JTree используется ссылка к корневому узлу дерева. Затем дерево пересылается как аргумент конструктору JSscrollPane. Потом эта панель прокрутки добавляется к апплету. После чего создается и добавляется к апплету текстовое поле. В нем представлена информация относительно событий щелчка мыши. Чтобы принимать события мыши от дерева, вызывается метод addMouseListener () объекта JTree. Аргумент этого метода — анонимный внутренний класс, который расширяет
MouseAdapter и переопределяет метод mouseClicked ().
Метод doMouseClicked () обрабатывает щелчки мыши. Он вызывает метод getPathForLocation (), чтобы транслировать координаты щелчка мыши в объект TreePath. Если кнопка мыши нажата в точке, которая не вызывает выбор узла, возвращаемое значение этого метода — null. В противном случае, путь дерева может быть конвертирован в строку и представлен в текстовом поле.
Вывод этого апплета представлен на рис. 76.
Строка, представленная в текстовом поле, описывает путь от вершины дерева к выбранному узлу.