vrode ready lab 7

This commit is contained in:
ekallin 2023-12-19 14:15:51 +04:00
parent 73023aa58f
commit e36c5b8f35
4 changed files with 35 additions and 30 deletions

View File

@ -55,7 +55,7 @@ public class FormLocomotiveCollections {
"Где данные? Напиши хоть что-нибудь", "Где данные? Напиши хоть что-нибудь",
"Ошибка", "Ошибка",
JOptionPane.INFORMATION_MESSAGE); JOptionPane.INFORMATION_MESSAGE);
return; _logger.error("Не удалось добавить набор: " + NameStorage);
} }
_storage.AddSet(NameStorage); _storage.AddSet(NameStorage);
ReloadObjects(); ReloadObjects();
@ -66,7 +66,7 @@ public class FormLocomotiveCollections {
ButtonRemoveObject.addActionListener(e -> ButtonRemoveObject.addActionListener(e ->
{ {
if (listBoxStorage.getSelectedIndex() == -1) { if (listBoxStorage.getSelectedIndex() == -1) {
return; _logger.error("Не выбран набор для удаления");
} }
JOptionPane.showMessageDialog(this.getPictureBoxCollections(), "Коллекция удалена", "Удаление", JOptionPane.INFORMATION_MESSAGE); JOptionPane.showMessageDialog(this.getPictureBoxCollections(), "Коллекция удалена", "Удаление", JOptionPane.INFORMATION_MESSAGE);
_storage.DelSet((String) listBoxStorage.getSelectedValue()); //ТУТ СТРИНГ ОБРАТИ ВНИМАНИЕ КАК-НИБУДЬ _storage.DelSet((String) listBoxStorage.getSelectedValue()); //ТУТ СТРИНГ ОБРАТИ ВНИМАНИЕ КАК-НИБУДЬ
@ -76,10 +76,10 @@ public class FormLocomotiveCollections {
ButtonAddLocomotive.addActionListener(e -> { ButtonAddLocomotive.addActionListener(e -> {
if (listBoxStorage.getSelectedIndex() == -1) if (listBoxStorage.getSelectedIndex() == -1)
return; _logger.warn("Не выбрана коллекция для добавления объекта");
var obj = _storage.get(listBoxStorage.getSelectedValue().toString()); // ТУТ ЕЩЕ РАЗ - ОБРАТИ ВНИМАНИЕ НА СТРИНГ var obj = _storage.get(listBoxStorage.getSelectedValue().toString()); // ТУТ ЕЩЕ РАЗ - ОБРАТИ ВНИМАНИЕ НА СТРИНГ
if (obj == null) { if (obj == null) {
return; _logger.warn("Набор равен null");
} }
FrameLocomotiveConfig frameLocomotiveConfig = new FrameLocomotiveConfig(); FrameLocomotiveConfig frameLocomotiveConfig = new FrameLocomotiveConfig();
frameLocomotiveConfig.setVisible(true); frameLocomotiveConfig.setVisible(true);
@ -99,9 +99,13 @@ public class FormLocomotiveCollections {
frameLocomotiveConfig._formLocomotiveConfig.buttonClose.addActionListener(e3 -> { frameLocomotiveConfig._formLocomotiveConfig.buttonClose.addActionListener(e3 -> {
frameLocomotiveConfig.dispose(); frameLocomotiveConfig.dispose();
}); });
_logger.info("Добавлен локомотив");
} catch (LocoStorageOverflowException ex) { } catch (LocoStorageOverflowException ex) {
JOptionPane.showMessageDialog(null, ex.getMessage()); JOptionPane.showMessageDialog(null, ex.getMessage());
_logger.warn("Превышено допустимое количество объектов в коллекции"); _logger.warn("Не удалось добавить объект " + ex.getMessage());
}
catch (Exception ex){
_logger.fatal("фатальная ошибка");
} }
}); });
@ -115,29 +119,17 @@ public class FormLocomotiveCollections {
ButtonRemoveLocomotive.addActionListener(e -> { ButtonRemoveLocomotive.addActionListener(e -> {
if (listBoxStorage.getSelectedIndex() == -1) { if (listBoxStorage.getSelectedIndex() == -1) {
return; _logger.warn("Не выбрана коллекция для удаления объекта");
} }
var obj = _storage.get(listBoxStorage.getSelectedValue().toString()); var obj = _storage.get(listBoxStorage.getSelectedValue().toString());
if (obj == null) { if (obj == null) {
return; _logger.warn("Набор равен null");
} }
int pos = Integer.parseInt(textFieldNumber.getText()); int pos = Integer.parseInt(textFieldNumber.getText());
try { try {
/*Object[] options = {"Да", "Нет"};
int n = JOptionPane.showOptionDialog(this.getPictureBoxCollections(),
"Удалить объект?",
"Все серьезно",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
options,
options[0]
);
if (n == 1) {
return;
}*/
DrawingLocomotive removedPlane = obj.SubOverload(pos); DrawingLocomotive removedPlane = obj.SubOverload(pos);
if (removedPlane != null) { //if (removedPlane != null) {
_stackRemoveObjects.push(removedPlane); _stackRemoveObjects.push(removedPlane);
Refresh(); Refresh();
@ -145,14 +137,14 @@ public class FormLocomotiveCollections {
"Объект удален", "Объект удален",
"Успех", "Успех",
JOptionPane.INFORMATION_MESSAGE); JOptionPane.INFORMATION_MESSAGE);
} else { _logger.info("Удален объект " + removedPlane);
JOptionPane.showMessageDialog(this.getPictureBoxCollections(), //}
"Не удалось удалить объект",
"Ошибка",
JOptionPane.ERROR_MESSAGE);
}
} catch (LocoNotFoundException ex) { } catch (LocoNotFoundException ex) {
JOptionPane.showMessageDialog(null, ex.getMessage()); JOptionPane.showMessageDialog(null, ex.getMessage());
_logger.warn("Не удалось удалить объект" + ex.getMessage());
}
catch (Exception ex){
_logger.fatal("фатальная ошибка");
} }
}); });
@ -193,9 +185,13 @@ public class FormLocomotiveCollections {
} else { } else {
JOptionPane.showMessageDialog(null, "Не загрузилось", "Результат", JOptionPane.ERROR_MESSAGE); JOptionPane.showMessageDialog(null, "Не загрузилось", "Результат", JOptionPane.ERROR_MESSAGE);
} }
_logger.info("Загружено из файла: " + selectedFile.getAbsolutePath());
} catch (FileNotFoundException ex) { } catch (FileNotFoundException ex) {
// logger.error("\n" + "Ошибка при загрузке всех объектов из файла: " + ex.getMessage());
JOptionPane.showMessageDialog(null, "Ошибка при загрузке всех объектов " + ex.getMessage(), "Результат", JOptionPane.ERROR_MESSAGE); JOptionPane.showMessageDialog(null, "Ошибка при загрузке всех объектов " + ex.getMessage(), "Результат", JOptionPane.ERROR_MESSAGE);
_logger.error("Не удалось загрузить объекты из файла: " + selectedFile.getAbsolutePath());
}
catch (Exception ex){
_logger.fatal("фатальная ошибка");
} }
} }
ReloadObjects(); ReloadObjects();
@ -212,8 +208,10 @@ public class FormLocomotiveCollections {
try { try {
_storage.SaveData(selectedFile.getAbsolutePath()); _storage.SaveData(selectedFile.getAbsolutePath());
JOptionPane.showMessageDialog(null, "Сохранение прошло успешно", "Результат", JOptionPane.INFORMATION_MESSAGE); JOptionPane.showMessageDialog(null, "Сохранение прошло успешно", "Результат", JOptionPane.INFORMATION_MESSAGE);
_logger.info("Сохранено в файл: " + selectedFile.getAbsolutePath());
} catch (Exception ex) { } catch (Exception ex) {
JOptionPane.showMessageDialog(null, "Ошибка при сохранении всех объектов " + ex.getMessage(), "Результат", JOptionPane.ERROR_MESSAGE); JOptionPane.showMessageDialog(null, "Ошибка при сохранении всех объектов " + ex.getMessage(), "Результат", JOptionPane.ERROR_MESSAGE);
_logger.error("Не удалось сохранить объекты в файл: " + selectedFile.getAbsolutePath());
} }
} }
@ -230,11 +228,13 @@ public class FormLocomotiveCollections {
try { try {
if (_storage.LoadDataSingle(selectedFile.getAbsolutePath())) { if (_storage.LoadDataSingle(selectedFile.getAbsolutePath())) {
JOptionPane.showMessageDialog(null, "Загрузка прошла успешно", "Результат", JOptionPane.INFORMATION_MESSAGE); JOptionPane.showMessageDialog(null, "Загрузка прошла успешно", "Результат", JOptionPane.INFORMATION_MESSAGE);
_logger.info("Загружен файл с коллекцией: " + selectedFile.getAbsolutePath());
} else { } else {
JOptionPane.showMessageDialog(null, "Не загрузилось", "Результат", JOptionPane.ERROR_MESSAGE); JOptionPane.showMessageDialog(null, "Не загрузилось", "Результат", JOptionPane.ERROR_MESSAGE);
} }
} catch (IOException ex) { } catch (IOException ex) {
JOptionPane.showMessageDialog(null, "Ошибка при загрузке коллекции " + ex.getMessage(), "Результат", JOptionPane.ERROR_MESSAGE); JOptionPane.showMessageDialog(null, "Ошибка при загрузке коллекции " + ex.getMessage(), "Результат", JOptionPane.ERROR_MESSAGE);
_logger.error("Не удалось загрузить коллекцию из файла: " + selectedFile.getAbsolutePath());
} }
} }
ReloadObjects(); ReloadObjects();
@ -255,8 +255,10 @@ public class FormLocomotiveCollections {
try { try {
_storage.SaveDataSingle(selectedFile.getAbsolutePath(), (String) listBoxStorage.getSelectedValue()); _storage.SaveDataSingle(selectedFile.getAbsolutePath(), (String) listBoxStorage.getSelectedValue());
JOptionPane.showMessageDialog(null, "Сохранение прошло успешно", "Результат", JOptionPane.INFORMATION_MESSAGE); JOptionPane.showMessageDialog(null, "Сохранение прошло успешно", "Результат", JOptionPane.INFORMATION_MESSAGE);
_logger.info("Сохранена коллекция в файл: " + selectedFile.getAbsolutePath());
} catch (Exception ex) { } catch (Exception ex) {
JOptionPane.showMessageDialog(null, "Ошибка при сохранении коллекции " + ex.getMessage(), "Результат", JOptionPane.ERROR_MESSAGE); JOptionPane.showMessageDialog(null, "Ошибка при сохранении коллекции " + ex.getMessage(), "Результат", JOptionPane.ERROR_MESSAGE);
_logger.error("Не удалось сохранить коллекцию в файл: " + selectedFile.getAbsolutePath());
} }
} }

View File

@ -5,7 +5,7 @@ import java.io.Serializable;
//create lab 7 //create lab 7
public class LocoNotFoundException extends RuntimeException implements Serializable { public class LocoNotFoundException extends RuntimeException implements Serializable {
public LocoNotFoundException(int i) { public LocoNotFoundException(int i) {
super("Не найден объект по позиции" + i); super("Не найден объект по позиции " + i);
} }
public LocoNotFoundException(Throwable ex) { public LocoNotFoundException(Throwable ex) {

View File

@ -7,7 +7,7 @@ public class LocoStorageOverflowException extends RuntimeException implements Se
super(ex); super(ex);
} }
public LocoStorageOverflowException(int count){ public LocoStorageOverflowException(int count){
super("В наборе превышено допустимое количество локомотивов:" + count); super("В наборе превышено допустимое количество локомотивов: " + count);
} }
public LocoStorageOverflowException(String message){ public LocoStorageOverflowException(String message){
super(message); super(message);

View File

@ -44,6 +44,9 @@ public class LocomotiveGenericCollection<T extends DrawingLocomotive,U extends I
{ {
_collection.Remove(pos); _collection.Remove(pos);
} }
else{
throw new LocoNotFoundException(pos);
}
return loco; return loco;
} }