From bb46f1fc7409e5cc43aed7df0d79dfe8445d0706 Mon Sep 17 00:00:00 2001 From: 111 <0@yandex.ru> Date: Tue, 25 Oct 2022 17:43:59 +0400 Subject: [PATCH] =?UTF-8?q?=D0=9A=D0=BE=D0=BC=D0=BC=D0=B8=D1=82=20=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=BF=D0=B0=D1=80=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/FormArmoredCar.form | 18 +++-- src/main/java/FormArmoredCar.java | 36 ++++++--- src/main/java/FormMapWithArmoredCars.java | 78 +++++++++++++------ .../java/MapWithSetArmoredCarsGeneric.java | 34 ++++---- src/main/java/SetArmoredCarsGeneric.java | 9 +-- 5 files changed, 121 insertions(+), 54 deletions(-) diff --git a/src/main/java/FormArmoredCar.form b/src/main/java/FormArmoredCar.form index 5cbc8f9..d8c1823 100644 --- a/src/main/java/FormArmoredCar.form +++ b/src/main/java/FormArmoredCar.form @@ -22,7 +22,7 @@ - + @@ -40,7 +40,7 @@ - + @@ -49,7 +49,7 @@ - + @@ -60,7 +60,7 @@ - + @@ -69,7 +69,7 @@ - + @@ -85,6 +85,14 @@ + + + + + + + + diff --git a/src/main/java/FormArmoredCar.java b/src/main/java/FormArmoredCar.java index cfea465..6dd30eb 100644 --- a/src/main/java/FormArmoredCar.java +++ b/src/main/java/FormArmoredCar.java @@ -18,13 +18,16 @@ public class FormArmoredCar extends JFrame{ private JLabel labelWeight; private JLabel labelColor; private JButton buttonCreate_Modif; + private JButton buttonSelectArmoredCar; private DrawingArmoredCar armoredCar; - + private DrawingArmoredCar selectedCar; + public boolean DialogResult = false; public FormArmoredCar() { super("Бронированная машина"); setBounds(100, 100, 700, 700); - setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + //setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); addComponentListener(new ComponentAdapter() { public void componentResized(ComponentEvent componentEvent) { @@ -43,8 +46,9 @@ public class FormArmoredCar extends JFrame{ @Override public void actionPerformed(ActionEvent actionEvent) { Random rnd = new Random(); - armoredCar = new DrawingArmoredCar(rnd.nextInt(100,300), rnd.nextInt(1000, 2000), - new Color(rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256))); + Color newColor = JColorChooser.showDialog(null, "Choose a color", Color.RED); + armoredCar = new DrawingArmoredCar(rnd.nextInt(100, 300), rnd.nextInt(1000, 2000), + newColor); setData(); } @@ -93,16 +97,26 @@ public class FormArmoredCar extends JFrame{ @Override public void actionPerformed(ActionEvent e) { Random rnd = new Random(); + Color newColor = JColorChooser.showDialog(null, "Choose a color", Color.RED); + Color newColorDop = JColorChooser.showDialog(null, "Choose a color", Color.RED); armoredCar = new DrawingTank(rnd.nextInt(100, 300), rnd.nextInt(1000, 2000), - new Color(rnd.nextInt(0, 256), rnd.nextInt(0, 256), rnd.nextInt(0, - 256)), - new Color(rnd.nextInt(0, 256), rnd.nextInt(0, 256), rnd.nextInt(0, - 256)), - 1==rnd.nextInt(0, 2), 1==rnd.nextInt(0, 2)); + newColor, + newColorDop, + 1 == rnd.nextInt(0, 2), 1 == rnd.nextInt(0, 2)); setData(); } }); + buttonSelectArmoredCar.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + if (armoredCar != null) { + selectedCar = armoredCar; + DialogResult = true; + dispose(); + } + } + }); } private void createUIComponents() { @@ -119,6 +133,10 @@ public class FormArmoredCar extends JFrame{ }; } + public DrawingArmoredCar getSelectedCar() { + return selectedCar; + } + private void setData() { Random rnd = new Random(); diff --git a/src/main/java/FormMapWithArmoredCars.java b/src/main/java/FormMapWithArmoredCars.java index 3fe3967..3fff88c 100644 --- a/src/main/java/FormMapWithArmoredCars.java +++ b/src/main/java/FormMapWithArmoredCars.java @@ -1,7 +1,6 @@ import javax.swing.*; import java.awt.*; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; +import java.awt.event.*; public class FormMapWithArmoredCars extends JFrame{ private JButton buttonAddArmoredCar; @@ -57,25 +56,7 @@ public class FormMapWithArmoredCars extends JFrame{ buttonAddArmoredCar.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - if (_mapArmoredCarsCollectionGeneric == null) - { - return; - } - FormArmoredCar form = new FormArmoredCar(); - JOptionPane.showMessageDialog(null, "Добавление - заглушка"); -// if (form.ShowDialog() == DialogResult.OK) -// { -// DrawingObjectArmoredCar armoredCar = new DrawingObjectArmoredCar(form.SelectedCar); -// if (_mapArmoredCarsCollectionGeneric.add(armoredCar) > -1) -// { -// MessageBox.Show("Объект добавлен"); -// img = _mapArmoredCarsCollectionGeneric.ShowSet(); -// } -// else -// { -// MessageBox.Show("Не удалось добавить объект"); -// } -// } + AddArmoredCar(); } }); buttonRemoveArmoredCar.addActionListener(new ActionListener() { @@ -85,7 +66,7 @@ public class FormMapWithArmoredCars extends JFrame{ { return; } - JOptionPane.showMessageDialog(null, "Удаление - заглушка"); + JOptionPane.showConfirmDialog (null,"Удаление - заглушка", "Удаление - заглушка", JOptionPane.YES_NO_OPTION); // if (MessageBox.Show("Удалить объект?", "Удаление", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) // { // return; @@ -128,6 +109,34 @@ public class FormMapWithArmoredCars extends JFrame{ setContentPane(mainPanel); setVisible(true); + buttonLeft.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + img = _mapArmoredCarsCollectionGeneric.MoveObject(Direction.Left); + repaint(); + } + }); + buttonUp.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + img = _mapArmoredCarsCollectionGeneric.MoveObject(Direction.Up); + repaint(); + } + }); + buttonDown.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + img = _mapArmoredCarsCollectionGeneric.MoveObject(Direction.Down); + repaint(); + } + }); + buttonRight.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + img = _mapArmoredCarsCollectionGeneric.MoveObject(Direction.Right); + repaint(); + } + }); } private void createUIComponents() { @@ -140,4 +149,29 @@ public class FormMapWithArmoredCars extends JFrame{ } }; } + + private void AddArmoredCar() { + if (_mapArmoredCarsCollectionGeneric == null) + { + return; + } + FormArmoredCar form = new FormArmoredCar(); + form.addWindowListener(new WindowAdapter() { + @Override + public void windowDeactivated(WindowEvent e) { + DrawingObjectArmoredCar armoredCar = new DrawingObjectArmoredCar(form.getSelectedCar()); + if (_mapArmoredCarsCollectionGeneric.add(armoredCar) > -1) + { + if (form.DialogResult) + JOptionPane.showMessageDialog(null, "Объект добавлен"); + img = _mapArmoredCarsCollectionGeneric.ShowSet(); + repaint(); + } + else + { + JOptionPane.showMessageDialog(null, "Не удалось добавить объект"); + } + } + }); + } } diff --git a/src/main/java/MapWithSetArmoredCarsGeneric.java b/src/main/java/MapWithSetArmoredCarsGeneric.java index f9c72cc..d1d7c75 100644 --- a/src/main/java/MapWithSetArmoredCarsGeneric.java +++ b/src/main/java/MapWithSetArmoredCarsGeneric.java @@ -9,7 +9,7 @@ public class MapWithSetArmoredCarsGeneric _setCars; @@ -47,7 +47,7 @@ public class MapWithSetArmoredCarsGeneric { private T[] _places; - public int Count = getCount(); public SetArmoredCarsGeneric(int count) { @@ -21,14 +20,14 @@ public class SetArmoredCarsGeneric { public int Insert(T armoredCar, int position) { - if (position < 0 || position >= Count) + if (position < 0 || position >= getCount()) return -1; if (!(_places[position] == null)) { int index_empty = -1; // поиск первого пустого элемента - for (int i = position + 1; i < Count; i++) + for (int i = position + 1; i < getCount(); i++) { if (_places[i] == null) { @@ -51,7 +50,7 @@ public class SetArmoredCarsGeneric { public T Remove(int position) { - if (position < 0 || position >= Count) + if (position < 0 || position >= getCount()) return null; T armoredCar = _places[position]; _places[position] = null; @@ -60,7 +59,7 @@ public class SetArmoredCarsGeneric { public T Get(int position) { - if (position < 0 || position >= Count) + if (position < 0 || position >= getCount()) return null; return _places[position]; }