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];
}