Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

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




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. Сообщение о успешном создании отчёта.

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

 

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 {

public MyException() {

super ("Вы не ввели фамилию нарушителя для поиска");

}

}

 

private void checkName(JTextField bName) throws MyException,

NullPointerException {

String sName = bName.getText();

if (sName.contains("Фамилия") || sName.length() == 0)

throw new MyException();

}

 

public void show() throws Exception {

 

policelist = new JFrame("ГИБДД. Сведения о нарушениях v2.0. ");

policelist.setSize(1200, 300);

policelist.setLocation(100, 100);

policelist.setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE);

 

// ------------------

txtNew = new JButton(new ImageIcon("./ico/txtNew.png"));

txtSave = new JButton(new ImageIcon("./ico/txtSave.png"));

txtOpen = new JButton(new ImageIcon("./ico/txtOpen.png"));

add = new JButton(new ImageIcon("./ico/add.png"));

delete = new JButton(new ImageIcon("./ico/delete.png"));

htmlSave = new JButton(new ImageIcon("./ico/htmlSave.png"));

pdfSave = new JButton(new ImageIcon("./ico/pdfSave.png"));

xmlSave = new JButton(new ImageIcon("./ico/xmlSave.png"));

xmlOpen = new JButton(new ImageIcon("./ico/xmlOpen.png"));

// ------------------

 

// ------------------

txtNew.setToolTipText("Создать");

txtSave.setToolTipText("Сохранить");

txtOpen.setToolTipText("Загрузить");

add.setToolTipText("Добавить");

delete.setToolTipText("Удалить");

pdfSave.setToolTipText("Сохранить в PDF");

htmlSave.setToolTipText("Сохранить в HTML");

xmlSave.setToolTipText("Сохранить в XML");

xmlOpen.setToolTipText("Загрузить в XML");

// ------------------^

 

toolBar = new JToolBar("Panel");

 

// ------------------v

toolBar.add(txtNew);

toolBar.add(txtSave);

toolBar.add(txtOpen);

toolBar.add(add);

toolBar.add(delete);

toolBar.add(pdfSave);

toolBar.add(htmlSave);

toolBar.add(xmlSave);

toolBar.add(xmlOpen);

// ------------------^

 

policelist.setLayout(new BorderLayout());

policelist.add(toolBar, BorderLayout. NORTH);

 

// Созданиетаблицы и инициализацияоднойстроки.

String[] columns = { "Фамилия", "Номер", "Нарушение", "Дата ТО",

"Отчёт о нарушениях" };

String[][] data = {};

model = new DefaultTableModel(data, columns);

violation = new JTable(model);

scroll = new JScrollPane(violation);

 

 

// ******* Загрузкабэкапапристартепрограммы *************

try {

xmlOpenIN file = new xmlOpenIN(null, model, violation);

} catch (Exception e) {

JOptionPane. showMessageDialog (policelist, " Автосохранённый файл\nповреждён или не найден.", "Ошибка сохранения.", JOptionPane. WARNING_MESSAGE);

// Открытьилисоздать

Object[] options = {"Открыть TXT", "Создать TXT", "Продолжить без открытия"};

 

Component frame = null; int n = JOptionPane. showOptionDialog (frame,

"Хотите загрузить каталог нарушений?", "Запуск программы",

JOptionPane. YES_NO_CANCEL_OPTION, JOptionPane. QUESTION_MESSAGE, null,

options, options[1]);

if (n==0)

{

 

txtOpen file = new txtOpen(null, model, policelist);

 

}

if (n==1)

{

txtNew file = new txtNew(null, model, policelist);

}

// TODO Auto-generated catch block

e.printStackTrace();

}

// ************************************************************

 

// ************************* Сортировкастобцов ****************

TableRowSorter<TableModel> sorter = new TableRowSorter(model);

violation.setRowSorter(sorter);

// *************************************************************

 

policelist.add(scroll, BorderLayout. CENTER);

 

violatorName = new JTextField("Фамилия");

search = new JButton("Поиск нарушителя");

 

JPanel searchPanel = new JPanel();

searchPanel.add(violatorName);

searchPanel.add(search);

 

// **************** Сохранить в HTML*****************************

htmlSave.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

try {

htmlSave file = new htmlSave(model, policelist);

JOptionPane. showMessageDialog (policelist, "Сохранено в HTML.", "Файл успешно сохранён!", 1);

} catch (Exception e)

{

JOptionPane. showMessageDialog (policelist, "Сохранить в HTML не удалось.", "Ошибка сохранения.", 0);

}

}

});

// *************************************************************

 

// ******************** Сохранить в XML**************************

xmlSave.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

try {

xmlSave file = new xmlSave(null, model, policelist);

} catch (Exception e) {

JOptionPane. showMessageDialog (policelist, "Сохранить в XML не удалось.", "Ошибка сохранения.", 0);

// TODO Auto-generated catch block

e.printStackTrace();

}

}

});

// *************************************************************

 

// ******************** Открыть XML******************************

xmlOpen.addActionListener(new ActionListener() {

public void actionPerformed (ActionEvent arg0){

 

try {

xmlOpen file = new xmlOpen(null, model, policelist);

} catch (Exception e) {

JOptionPane. showMessageDialog (policelist, "Открыть файл не удалось.", "Ошибка открытия.", 0);

// TODO Auto-generated catch block

e.printStackTrace();

}

 

}

});

// *************************************************************

 

// ******************* Сохранить в PDF***************************

pdfSave.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

Try

{

pdfSave file = new pdfSave(model, policelist);

JOptionPane. showMessageDialog (policelist, " Сохранено в PDF.", "Файл успешно сохранён!", 1);

}

catch (Exception e)

{

JOptionPane. showMessageDialog (policelist, "Сохранить в PDF не удалось.", "Ошибка сохранения.", 0);

}

 

}

});

// *************************************************************

 

// ******************* Сохранить в TXT**************************

txtSave.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

try {

txtSave file = new txtSave(null, model, policelist);

} catch (Exception e) {

// TODO Auto-generated catch block

JOptionPane. showMessageDialog (policelist, "Сохранить в TXT не удалось.", "Ошибка сохранения.", 0);

e.printStackTrace();

}

}

});

// **************************************************************

 

// ********************** Открыть TXT*****************************

txtOpen.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

try {

txtOpen file = new txtOpen(null, model, policelist);

} catch (Exception e) {

JOptionPane. showMessageDialog (policelist, "Открыть файл не удалось.", "Ошибка открытия.", 0);

// TODO Auto-generated catch block

e.printStackTrace();

}

}

});

// ****************************************************************************************************************************************

 

// ********************************** Создать

// ********************************************************************************************

txtNew.addActionListener(new ActionListener() {

 

public void actionPerformed(ActionEvent arg0) {

try {

txtNew file = new txtNew(null, model, policelist);

} catch (Exception e) {

JOptionPane. showMessageDialog (policelist, "Создать файл не удалось.", "Ошибка создания.", 0);

// TODO Auto-generated catch block

e.printStackTrace();

}

}

});

// ****************************************************************************************************************************************

 

// ************************************ Реакциякнопкидобавления

// *************************************************************************

add.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

model.addRow(new Object[] {});

}

});

// ****************************************************************************************************************************************

 

// ************************************ Реакциякнопкиудаления

// ***************************************************************************

delete.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

System. out. println("Selected Row: "

+ violation.getSelectedRow());

model.removeRow(violation.getSelectedRow());

}

});

// ****************************************************************************************************************************************

 

// ************************************ Проверкакнопкипоиска

// ***************************************************************************

search.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

try {

checkName(violatorName);

} catch (NullPointerException ex) {

JOptionPane. showMessageDialog (policelist, ex.toString());

return;

} catch (MyException myEx) {

JOptionPane. showMessageDialog (null, myEx.getMessage());

return;

}

JOptionPane. showMessageDialog (policelist, "Поиск завершён!");

}

});

// ****************************************************************************************************************************************

// ****************************** Диалоговоесообщениепривыходеизпрограммы

// ************************************************************

policelist.addWindowListener(new WindowListener() {

public void windowClosing(WindowEvent event) {

JOptionPane. showMessageDialog (policelist, " Выход из программы.\nТекущий процесс будет сохранён.",

"Внимание!", JOptionPane. WARNING_MESSAGE);

try {

xmlSaveOUT file = new xmlSaveOUT(null, model);

} catch (Exception e) {

JOptionPane. showMessageDialog (policelist, " Не удалось создать файл автосохранения.",

"Критическая ошибка!", JOptionPane. WARNING_MESSAGE);

// TODO Auto-generated catch block

e.printStackTrace();

}

}

@Override

public void windowActivated(WindowEvent arg0) {

// TODO Auto-generated method stub

}

@Override

public void windowClosed(WindowEvent arg0) {

// TODO Auto-generated method stub

}

@Override

public void windowDeactivated(WindowEvent arg0) {

// TODO Auto-generated method stub

}

 

@Override

public void windowDeiconified(WindowEvent arg0) {

// TODO Auto-generated method stub

}

@Override

public void windowIconified(WindowEvent arg0) {

// TODO Auto-generated method stub

}

@Override

public void windowOpened(WindowEvent arg0) {

// TODO Auto-generated method stub

}

});

// ****************************************************************************************************************************************

 

policelist.add(searchPanel, BorderLayout. SOUTH);

 

policelist.setVisible(true);

}

 

public Node item(int temp) {

// TODO Auto-generated method stub

return null;

}

 

public int getLength() {

// TODO Auto-generated method stub

return 0;

}

 

public static void main(String[] args) throws Exception {

new PoliceList().show();

}

 

}

 

Заключение

В результате проделанной работы разработан ПК «Учет, редактирования, внесение и удаление сведений о нарушителях», предназначенный для администрирования и учета информации по списание и выдачи книг, разработано руководство оператора.

В процессе проектирования созданы описание вариантов использования ПК, прототип интерфейса пользователя, объектная модель ПК, диаграмма классов, описание поведения ПК, диаграмма действия ПК.

Курсовой проект удовлетворяет поставленным требованиям.

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...