From 7dd4ec395c3dd8061e02e7325e6c263949d3755a Mon Sep 17 00:00:00 2001 From: antoc0der <1@DESKTOP-K1L8ND3> Date: Thu, 21 Dec 2023 19:15:28 +0300 Subject: [PATCH] =?UTF-8?q?=D1=8D=D1=82=D0=BE=20=D0=B3=D0=B8=D0=BF=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/FormAirplaneCollection.java | 102 ++++++++++++++++++++------------ src/Main.java | 12 +--- src/loggerFile.xml | 32 ++++++++++ 3 files changed, 97 insertions(+), 49 deletions(-) create mode 100644 src/loggerFile.xml diff --git a/src/FormAirplaneCollection.java b/src/FormAirplaneCollection.java index 69ec9c3..8b15f6e 100644 --- a/src/FormAirplaneCollection.java +++ b/src/FormAirplaneCollection.java @@ -5,7 +5,8 @@ import src.Generics.AirplaneGenericCollection; import src.MovementStrategy.DrawningObjectAirplane; import src.Generics.AirplaneGenericStorage; import src.Generics.AirplaneTrashCollection; -import src.DrawningObjects.ExtentionDrawningAirplane; +import src.Exceptions.AirplaneNotFoundException; +import src.Exceptions.AirplaneStorageOverflowException; import javax.swing.*; import java.awt.*; @@ -14,9 +15,8 @@ import java.awt.event.ActionListener; import java.util.List; import javax.swing.filechooser.FileFilter; import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileWriter; import java.io.IOException; +import java.io.FileNotFoundException; import org.apache.logging.log4j.*; @@ -37,6 +37,7 @@ class TxtSaveFilter extends FileFilter { } public class FormAirplaneCollection { + private final Logger _logger; private final AirplaneGenericStorage _storage; private JList listBoxStorages; private DefaultListModel listBoxModel; @@ -64,6 +65,7 @@ public class FormAirplaneCollection { } public FormAirplaneCollection() { + _logger = LogManager.getLogger("logger"); JMenuBar menuFile = new JMenuBar(); JMenu file = new JMenu("Файл"); menuFile.add(file); @@ -123,8 +125,10 @@ public class FormAirplaneCollection { File file = new File(fc.getSelectedFile() + "." + "txt"); try { _storage.SaveData(file); - } catch (IOException ex) { - throw new RuntimeException(ex); + _logger.info("Сохранено в файл: " + file.getAbsolutePath()); + } catch (Exception ex) { + JOptionPane.showMessageDialog(null, "Ошибка при сохранении всех объектов " + ex.getMessage(), "Результат", JOptionPane.ERROR_MESSAGE); + _logger.error("Не удалось сохранить объекты в файл: " + file.getAbsolutePath()); } } } @@ -143,8 +147,10 @@ public class FormAirplaneCollection { } _storage._airplaneStorages.get(listBoxStorages.getSelectedValue()).SaveData(file, listBoxStorages.getSelectedValue()); ReloadObjects(); - } catch (IOException ex) { - throw new RuntimeException(ex); + _logger.info("Сохранена коллекция в файл: " + file.getAbsolutePath()); + } catch (Exception ex) { + JOptionPane.showMessageDialog(null, "Ошибка при сохранении коллекции " + ex.getMessage(), "Результат", JOptionPane.ERROR_MESSAGE); + _logger.error("Не удалось сохранить коллекцию в файл: " + file.getAbsolutePath()); } } } @@ -159,13 +165,17 @@ public class FormAirplaneCollection { try { _storage.LoadData(file); canv._storage =_storage; - ReloadObjects(); - canv.repaint(); - } catch (IOException ex) { - throw new RuntimeException(ex); + _logger.info("Загружено из файла: " + file.getAbsolutePath()); + } catch (FileNotFoundException ex) { + JOptionPane.showMessageDialog(null, "Ошибка при загрузке всех объектов " + ex.getMessage(), "Результат", JOptionPane.ERROR_MESSAGE); + _logger.error("Не удалось загрузить объекты из файла: " + file.getAbsolutePath()); + } + catch (Exception ex){ + _logger.fatal("фатальная ошибка"); } } - + ReloadObjects(); + canv.repaint(); } }); loadCollection.addActionListener(new ActionListener() { @@ -179,8 +189,10 @@ public class FormAirplaneCollection { _storage.LoadCollection(file); ReloadObjects(); canv.repaint(); + _logger.info("Загружен файл с коллекцией: " + file.getAbsolutePath()); } catch (IOException ex) { - throw new RuntimeException(ex); + JOptionPane.showMessageDialog(null, "Ошибка при загрузке коллекции " + ex.getMessage(), "Результат", JOptionPane.ERROR_MESSAGE); + _logger.error("Не удалось загрузить коллекцию из файла: " + file.getAbsolutePath()); } } } @@ -189,8 +201,9 @@ public class FormAirplaneCollection { @Override public void actionPerformed(ActionEvent e) { if (storageName.getText() == null) - return; + _logger.error("Не удалось добавить набор: " + storageName); _storage.AddSet(storageName.getText()); + _logger.info("Добавлен набор: " + storageName.getText()); ReloadObjects(); } }); @@ -198,10 +211,11 @@ public class FormAirplaneCollection { @Override public void actionPerformed(ActionEvent e) { if (listBoxStorages.getSelectedIndex() == -1) { - return; + _logger.error("Не выбран набор для удаления"); } _storage.DelSet(listBoxStorages.getSelectedValue(), _trashCollection); ReloadObjects(); + _logger.info("Удален набор: " + listBoxStorages.getSelectedValue()); } }); callTrashButton.addActionListener(new ActionListener() { @@ -218,24 +232,33 @@ public class FormAirplaneCollection { @Override public void actionPerformed(ActionEvent e) { if (listBoxStorages.getSelectedIndex() == -1) { - return; + _logger.warn("Не выбрана коллекция для добавления объекта"); } AirplaneGenericCollection _airplanes = _storage.Get(listBoxStorages.getSelectedValue()); FormAirplaneConfig form = new FormAirplaneConfig(); form.addButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - if (_airplanes.Insert(form._airplane)) { - JOptionPane.showMessageDialog(null, "Объект добавлен", "Информация", JOptionPane.INFORMATION_MESSAGE); - form._airplane._pictureWidth = pictureBoxWidth; - form._airplane._pictureHeight = pictureBoxHeight; - Draw(); - } else { - JOptionPane.showMessageDialog(null, "Не удалось добавить объект", "Информация", JOptionPane.INFORMATION_MESSAGE); + try { + if (_airplanes.Insert(form._airplane)) { + JOptionPane.showMessageDialog(null, "Объект добавлен", "Информация", JOptionPane.INFORMATION_MESSAGE); + form._airplane._pictureWidth = pictureBoxWidth; + form._airplane._pictureHeight = pictureBoxHeight; + Draw(); + } else { + JOptionPane.showMessageDialog(null, "Не удалось добавить объект", "Информация", JOptionPane.INFORMATION_MESSAGE); + } + form.frameConfig.dispose(); + Draw(); + _logger.info("Добавлен объект"); + } catch (AirplaneStorageOverflowException ex) { + JOptionPane.showMessageDialog(null, ex.getMessage()); + _logger.warn("Не удалось добавить объект " + ex.getMessage()); + } + catch (Exception ex){ + _logger.fatal("фатальная ошибка"); } - form.frameConfig.dispose(); - Draw(); } }); form.cancelButton.addActionListener(new ActionListener() { @@ -251,26 +274,29 @@ public class FormAirplaneCollection { @Override public void actionPerformed(ActionEvent e) { if (listBoxStorages.getSelectedIndex() == -1) { - return; + _logger.warn("Не выбрана коллекция для удаления объекта"); } AirplaneGenericCollection _airplanes = _storage.Get(listBoxStorages.getSelectedValue()); if (_airplanes == null) { - return; + _logger.warn("Набор равен null"); } String tmp = airplaneNumb.getText(); - int numb; + int numb=Integer.parseInt(tmp); try { - numb = Integer.parseInt(tmp); - } catch (Exception ex) { - JOptionPane.showMessageDialog(null, "Введите число", "Информация", JOptionPane.INFORMATION_MESSAGE); - return; + DrawningAirplane curAirplane = _airplanes.Get(numb); + _trashCollection.Push(curAirplane); + _airplanes.Remove(numb); + _airplanes.ShowAirplanes(); + JOptionPane.showMessageDialog(null, "Объект удален", "Информация", JOptionPane.INFORMATION_MESSAGE); + Draw(); + _logger.info("Удален объект по позиции " + numb); + } catch (AirplaneNotFoundException ex) { + JOptionPane.showMessageDialog(null, ex.getMessage()); + _logger.warn("Не удалось удалить объект" + ex.getMessage()); + } + catch (Exception ex){ + _logger.fatal("фатальная ошибка"); } - DrawningAirplane curAirplane = _airplanes.Get(numb); - _trashCollection.Push(curAirplane); - _airplanes.Remove(numb); - _airplanes.ShowAirplanes(); - JOptionPane.showMessageDialog(null, "Объект удален", "Информация", JOptionPane.INFORMATION_MESSAGE); - Draw(); } }); diff --git a/src/Main.java b/src/Main.java index e996dc7..3ba020f 100644 --- a/src/Main.java +++ b/src/Main.java @@ -1,19 +1,9 @@ package src; -import src.DrawningObjects.DrawningAirplaneWithRadar; -import src.DrawningObjects.DrawningAirplane; -import src.MovementStrategy.*; -import java.awt.*; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.image.BufferedImage; -import java.io.File; import java.io.IOException; -import java.util.Random; -import javax.imageio.ImageIO; -import javax.swing.*; public class Main { public static void main(String[] args) throws IOException { + System.setProperty("log4j.configurationFile", "C:\\Users\\1\\Desktop\\улгту\\2 курс\\РПП\\PIbd-23_Nasyrov_A_G_AirplaneWithRadar_hard\\src\\loggerFile.xml"); FormAirplaneCollection form = new FormAirplaneCollection(); } } \ No newline at end of file diff --git a/src/loggerFile.xml b/src/loggerFile.xml new file mode 100644 index 0000000..05dc958 --- /dev/null +++ b/src/loggerFile.xml @@ -0,0 +1,32 @@ + + + + + + + + %m (дата-%d{d.M.y}) %ex%n + + + + + + %m (дата-%d{d.M.y}) %ex%n + + + + + + + + + + + + + + + + + + \ No newline at end of file