Курсовая работа: Использование классических алгоритмов обработки данных при создании приложения

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

} else if (formattedTxtGradeBook.getText().isBlank() && (!txtSurname.getText().isBlank()

&& !txtFirstName.getText().isBlank() && !txtSecondName.getText().isBlank())

&& formattedTxtBirthDate.getText().isBlank()) {

return 2;

} else if (formattedTxtGradeBook.getText().isBlank() && txtSurname.getText().isBlank()

&& txtFirstName.getText().isBlank() && txtSecondName.getText().isBlank()

&& !formattedTxtBirthDate.getText().isBlank()) {

return 3;

} else {

return 4;

}

}

/*

* Очищает список студентов

*/

public void clear() {

String message = "Список студентов очищен.";

list.clear();

drawTable(list, columnNames);

txtAreaPrompt.setText(message);

}

/**

* Перерисовать таблицу на форме

*

* @param list список для модели таблицы

* @param columnNames наименование колонок для модели таблицы

*/

public void drawTable(StudentList list, String[] columnNames) {

if (table != null) {

scrollPane.remove(table);

}

tableModel = new StudentListTableModel(list, columnNames);

((AbstractTableModel) tableModel).addTableModelListener(this);

table = new JTable(tableModel);

scrollPane.setViewportView(table);

}

@Override

public void tableChanged(TableModelEvent e) {

// Для работы перерисовки таблицы со списком студентов

}

/**

* Произвести экспорт в файл, указанный пользователем в диалоговом окне

*/

public void exportToFile() {

String message = "";

JFileChooser fileChooser = new JFileChooser();

fileChooser.setDialogTitle("Укажите txt файл для сохранения");

int userSelection = fileChooser.showSaveDialog(this);

if (userSelection == JFileChooser.APPROVE_OPTION) {

File fileToSave = fileChooser.getSelectedFile();

try {

list.saveToFile(fileToSave);

message = "Список студентов сохранен в файл " + fileToSave.getAbsolutePath();

} catch (IOException e) {

message = "Ошибка при попытке сохранения в файл (" + e.getMessage()

+ "). Укажите txt файл для сохранения списка студентов.";

}

txtAreaPrompt.setText(message);

}

}

/**

* Произвести импорт списка из файла, указанного пользователем в диалоговом окне

*/

public void importFromFile() {

String message = "";

JFileChooser fileChooser = new JFileChooser();

fileChooser.setDialogTitle("Укажите txt файл для импорта");

int userSelection = fileChooser.showSaveDialog(this);

if (userSelection == JFileChooser.APPROVE_OPTION) {

File fileToImportFrom = fileChooser.getSelectedFile();

try {

list = list.readFromFile(fileToImportFrom);

message = "Список студентов загружен из файла " + fileToImportFrom.getAbsolutePath();

} catch (IOException e) {

message = "Ошибка при попытке загрузки списка из файла (" + e.getMessage()

+ "). Укажите txt файл для импорта списка студентов.";

}

txtAreaPrompt.setText(message);

}

drawTable(list, columnNames);

}

public static void main(String[] args) {

StudentListApp app = new StudentListApp();

app.setPreferredSize(new Dimension(700, 500));

app.pack();

app.setVisible(true);

}

}

Файл «StudentListInterface.java»

public interface StudentListInterface {

int size();

//Операции изменения списка

/**

* Добавляет указанный элемент в конец списка.

* <p>Ограничения на добавляемые элементы:

* В список нельзя добавлять пустые ({@code null}) элементы.

* <b>В список нельзя добавлять элементы с одинаковым номером

* зачетной книжки</b>.

*

* @param e элемент для добавления в список

* @return {@code true}, если список изменился в результате вызова.

* @throws NullPointerException, если добавляемый элемент пустой

* ({@code null})

* @throws IllegalArgumentException, если добавляемый элемент не

* может быть добавлен из-за совпадения номера зачетной книжки.

* @throws NullPointerException, если указанный элемент пустой

*/

boolean add(Student e);

/**

* Удаляет первое вхождение указанного элемента их списка, если

* такой элемент в списке есть. Если такого элемента в списке нет,

* список не меняется.

* Возвращает {@code true}, если список содержал указанный элемент

* (то есть, этот список был изменен вызовом этого метода).

* @param o элемент, который будет удален, если он имеется в списке

* @return {@code true}, если список содержал указанный элемент

* @throws ClassCastExceptio, если тип добавляемого элемента не соответсвует

* содержимому списка

* @throws NullPointerException, если указанный элемент пустой

*/

boolean remove(Object o);

//Операции массового изменения списка

/**

* Удаляет все элементы из списка. Список будет пустым после

* выполнения этого метода.

*/

void clear();

//Операции доступа к элементам

//Обычные операции доступа к элементам, типа получения элемента по его индексу,

//не нужны в рамках данной работы

//Операции поиска и фильтрации

//Обычные операции поиска и фильтрации, типа получения индекса элемента,

//итераторов и представлений не нужны в рамках данной работы

}

Файл «StudentListTableModel.java»

import javax.swing.table.AbstractTableModel;

public class StudentListTableModel extends AbstractTableModel {

/**

*

*/

private static final long serialVersionUID = 1L;

private String[] columnNames;

private StudentList data;

public StudentListTableModel(StudentList data, String[] columnNames) {

super();

this.columnNames = columnNames;

this.data = data;

}

@Override

public int getRowCount() {

return data.size();

}

@Override

public int getColumnCount() {

return columnNames.length;

}

@Override

public Object getValueAt(int rowIndex, int columnIndex) {

return data.get(rowIndex).getColumnsArray()[columnIndex];

}

}

Источник: https://otherreferats.allbest.ru/download/1261417/