Создание программного комплекса средствами объектно-ориентированного программирования, страница 8

При запуске программы на экране появится диалоговое окно представленное на рис. 3.1.

 

Рис. 3.1 Окно ввода пароля

Рис. 3.1.2. Пароль не принят.

Рис. 3.1.2. Пароль принят.

Далее появится окно с выбором начала работы.

Рис. 3.2 Диалог выбора начального действия.

И наконец появится главное диалоговое окно.

Рис 3.3. Главное окно программы.

3.5.3. Выполнение основных функций

3.5.3.1 Начало работы

Если при появлении окна (рис 3.2) выбрать создать файл то появится диалог создания нового файла

Рис.3.4 Создание нового файла.

После ввода имени файла и пути и после нажатия на кнопку сохранить появляется пустая база данных, свободная для редактирования.

Рис 3.5 Создан новый файл.

Если при появлении окна (рис 3.2) выбрать открыть файл то появится диалог открытия файла

3.6 Диалог открытия файла

И далее произойдёт загрузка файла в БД.

3.7 Файл открыт.

3.5.3.2 Добавление информации в БД

Информацию можно добавить 2 способами: создав новую строку (рис. 3.8) или загрузив двумя способами данные из файла(рис. 3.9).

Рис 3.8 Добавлена пустая строка .

Рис. 3.9 Загружен XML-файл

3.5.3.3 Удаление информации из БД.

Информацию можно удалить 2 способами: удалив выбранную строку строку (рис. 4.0) или создав новый файл.(рис. 4.1).

Рис. 4.0 Удалены все строки кроме первой.

Рис. 4.1 Создан новый файл.

3.5.3.4 Сохранение БД

Сохранить БД можно 2-мя способами: в формате txt или xml. Если информация не была сохранена вручную она сохранится автоматически в xml-файл backup.xml и при следующем запуске автоматически загрузится этот файл. В случае повреждения файла backup.xml или невозможности его прочтения появится сообщение и диалоговое окно с выбором дальнейших действий.

Рис. 4.2 Сохранение файла.

Рис. 4.3. Файл автосохранения в проводнике.

Рис 4.4. Сообщения о автосохранении и неудачной загрузке автосохранения.

3.5.3.5. Создание отчётов.

Отчёт можно создать двумя способами – нажав сохранить в PDF или HTML.

Рис. 4.5. Отчёт сохранён в PDF

Рис. 4.5. Отчёт сохранён в HTML

 

Рис. 4.5. Сообщение о успешном создании отчёта.

4.  Исходные тексты ПК

package kurs;

import java.awt.BorderLayout;

import java.awt.Component;

import java.awt.FileDialog;

import javax.swing.*;

import javax.swing.table.DefaultTableModel;

import javax.swing.table.TableModel;

import javax.swing.table.TableRowSorter;

import org.omg.CORBA.Environment;

import java.awt.event.*;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Attr;

import org.w3c.dom.Document;

import org.w3c.dom.Element;

import org.w3c.dom.NamedNodeMap;

import org.w3c.dom.Node;

import org.w3c.dom.NodeList;

import org.xml.sax.SAXException;

import javax.xml.transform.Transformer;

import javax.xml.transform.TransformerConfigurationException;

import javax.xml.transform.TransformerException;

import javax.xml.transform.TransformerFactory;

import javax.xml.transform.dom.DOMSource;

import javax.xml.transform.stream.StreamResult;

import java.io.File;

public class PoliceList {

final static public Object shared = new Object();

private JFrame policelist;

private DefaultTableModel model;

private JToolBar toolBar;

private JScrollPane scroll;

private JTable violation; // violation - нарушения

private JTextField violatorName;

private JButton search;

// ------------ Кнопки ------------private JButton txtNew;

private JButton txtSave;

private JButton txtOpen;

private JButton add;

private JButton delete;

private JButton htmlSave;

private JButton pdfSave;

private JButton xmlSave;

private JButton xmlOpen;

// -----------------private class MyException extends Exception {