From e76c089c8ad7d385a282cf9c72cf4e733bc35790 Mon Sep 17 00:00:00 2001 From: insideq Date: Sat, 8 Jun 2024 11:25:47 +0400 Subject: [PATCH] revert 736247db821823c1cb50d31f00fdd329754116f3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit revert Лабораторная работа №3 --- .../AdditionalCollections.java | 61 ----- .../AbstractCompany.java | 34 --- .../BulldozerSharingService.java | 49 ---- .../ICollectionGenericObjects.java | 12 - .../MassiveGenericObjects.java | 75 ------ .../CanvasFormBulldozerCollection.java | 36 --- .../src/Drawings/DrawingBulldozer.java | 13 +- .../src/Drawings/DrawingExcavator.java | 10 +- .../src/Entities/EntityBulldozer.java | 6 - .../src/Entities/EntityExcavator.java | 6 - .../src/FormAdditionalCollection.java | 137 ----------- .../src/FormBulldozerCollection.java | 220 ------------------ ProjectExcavator/src/FormExcavator.java | 63 ++++- ProjectExcavator/src/Program.java | 2 +- 14 files changed, 62 insertions(+), 662 deletions(-) delete mode 100644 ProjectExcavator/src/CollectionAdditionalObjects/AdditionalCollections.java delete mode 100644 ProjectExcavator/src/CollectionGenericObjects/AbstractCompany.java delete mode 100644 ProjectExcavator/src/CollectionGenericObjects/BulldozerSharingService.java delete mode 100644 ProjectExcavator/src/CollectionGenericObjects/ICollectionGenericObjects.java delete mode 100644 ProjectExcavator/src/CollectionGenericObjects/MassiveGenericObjects.java delete mode 100644 ProjectExcavator/src/Drawings/CanvasFormBulldozerCollection.java delete mode 100644 ProjectExcavator/src/FormAdditionalCollection.java delete mode 100644 ProjectExcavator/src/FormBulldozerCollection.java diff --git a/ProjectExcavator/src/CollectionAdditionalObjects/AdditionalCollections.java b/ProjectExcavator/src/CollectionAdditionalObjects/AdditionalCollections.java deleted file mode 100644 index cdc6005..0000000 --- a/ProjectExcavator/src/CollectionAdditionalObjects/AdditionalCollections.java +++ /dev/null @@ -1,61 +0,0 @@ -package CollectionAdditionalObjects; - -import DifferentRollers.IDifferentRollers; -import Drawings.DrawingBulldozer; -import Drawings.DrawingExcavator; -import Entities.EntityBulldozer; -import Entities.EntityExcavator; - -import java.lang.reflect.Array; -import java.util.Random; - -public class AdditionalCollections { - public T[] _collectionEntity; - public U[] _collectionRollers; - public AdditionalCollections(int size, Class type1, Class type2) { - _collectionEntity = (T[]) Array.newInstance(type1, size); - _collectionRollers = (U[]) Array.newInstance(type2, size); - CountEntities = size; - CountRollers = size; - } - public int CountEntities; - public int CountRollers; - public int Insert(T entity) { - int index = 0; - while (index < CountEntities) { - if (_collectionEntity[index] == null) - { - _collectionEntity[index] = entity; - return index; - } - ++index; - } - return -1; - } - public int Insert(U rollers) { - int index = 0; - while (index < CountRollers) { - if (_collectionRollers[index] == null) - { - _collectionRollers[index] = rollers; - return index; - } - ++index; - } - return -1; - } - public DrawingBulldozer CreateAdditionalCollectionBulldozer() { - Random random = new Random(); - if (_collectionEntity == null || _collectionRollers == null) return null; - T entity = _collectionEntity[random.nextInt(CountEntities)]; - U rollers = _collectionRollers[random.nextInt(CountRollers)]; - DrawingBulldozer drawingShip = null; - if (entity instanceof EntityExcavator) { - drawingShip = new DrawingExcavator((EntityExcavator) entity, rollers); - } - else { - drawingShip = new DrawingBulldozer(entity, rollers); - } - return drawingShip; - } -} diff --git a/ProjectExcavator/src/CollectionGenericObjects/AbstractCompany.java b/ProjectExcavator/src/CollectionGenericObjects/AbstractCompany.java deleted file mode 100644 index 6314a1b..0000000 --- a/ProjectExcavator/src/CollectionGenericObjects/AbstractCompany.java +++ /dev/null @@ -1,34 +0,0 @@ -package CollectionGenericObjects; - -import Drawings.DrawingBulldozer; - -import java.awt.*; - -public abstract class AbstractCompany { - protected int _placeSizeWidth = 195; - protected int _placeSizeHeight = 80; - protected int _pictureWidth; - protected int _pictureHeight; - public ICollectionGenericObjects _collection = null; - private int GetMaxCount() { - return _pictureWidth * _pictureHeight / (_placeSizeWidth * _placeSizeHeight); - } - public AbstractCompany(int picWidth, int picHeight, ICollectionGenericObjects collection) - { - _pictureWidth = picWidth; - _pictureHeight = picHeight; - _collection = collection; - _collection.SetMaxCount(GetMaxCount(), DrawingBulldozer.class); - } - //перегрузка операторов в джаве невозможна - public DrawingBulldozer GetRandomObject() - { - return _collection.Get((int)(Math.random()*GetMaxCount())); - } - public void SetPosition() - { - SetObjectsPosition(); - } - public abstract void DrawBackground(Graphics graphics); - protected abstract void SetObjectsPosition(); -} diff --git a/ProjectExcavator/src/CollectionGenericObjects/BulldozerSharingService.java b/ProjectExcavator/src/CollectionGenericObjects/BulldozerSharingService.java deleted file mode 100644 index d40d4a2..0000000 --- a/ProjectExcavator/src/CollectionGenericObjects/BulldozerSharingService.java +++ /dev/null @@ -1,49 +0,0 @@ -package CollectionGenericObjects; - -import Drawings.DrawingBulldozer; - -import java.awt.*; - -public class BulldozerSharingService extends AbstractCompany{ - public BulldozerSharingService(int picWidth, int picHeight, ICollectionGenericObjects collection) { - super(picWidth, picHeight, collection); - } - @Override - public void DrawBackground(Graphics g) { - int width = _pictureWidth / _placeSizeWidth; - int height = _pictureHeight / _placeSizeHeight; - g.setColor(Color.BLACK); - for (int i = 0; i < width; i++) - { - for (int j = 0; j < height + 1; ++j) - { - g.drawLine(i * _placeSizeWidth, j * _placeSizeHeight, i * _placeSizeWidth + _placeSizeWidth / 2, j * _placeSizeHeight); - } - g.drawLine(i * _placeSizeWidth, 0, i * _placeSizeWidth, _pictureHeight); - } - } - @Override - protected void SetObjectsPosition() { - int width = _pictureWidth / _placeSizeWidth; - int height = _pictureHeight / _placeSizeHeight; - - int posWidth = width - 1; - int posHeight = 0; - for (int i = 0; i < (_collection.getCount()); i++) { - if (_collection.Get(i) != null) { - _collection.Get(i).SetPictureSize(_pictureWidth, _pictureHeight); - _collection.Get(i).SetPosition(_placeSizeWidth * posWidth + 4, posHeight * _placeSizeHeight + 4); - } - if (posWidth > 0) - posWidth--; - else { - posWidth = width - 1; - posHeight++; - } - if (posHeight > height) { - return; - } - } - } -} - diff --git a/ProjectExcavator/src/CollectionGenericObjects/ICollectionGenericObjects.java b/ProjectExcavator/src/CollectionGenericObjects/ICollectionGenericObjects.java deleted file mode 100644 index a633cfe..0000000 --- a/ProjectExcavator/src/CollectionGenericObjects/ICollectionGenericObjects.java +++ /dev/null @@ -1,12 +0,0 @@ -package CollectionGenericObjects; - -public interface ICollectionGenericObjects -{ - int getCount(); - void SetMaxCount(int count, Class type); - int Insert(T obj); - int Insert(T obj, int position); - T Remove(int position); - T Get(int position); -} - diff --git a/ProjectExcavator/src/CollectionGenericObjects/MassiveGenericObjects.java b/ProjectExcavator/src/CollectionGenericObjects/MassiveGenericObjects.java deleted file mode 100644 index 063fb44..0000000 --- a/ProjectExcavator/src/CollectionGenericObjects/MassiveGenericObjects.java +++ /dev/null @@ -1,75 +0,0 @@ -package CollectionGenericObjects; - -import java.lang.reflect.Array; - -public class MassiveGenericObjects implements ICollectionGenericObjects{ - private T[] _collection; - private int Count; - public void SetMaxCount(int size, Class type) { - if (size > 0) { - _collection = (T[]) Array.newInstance(type, size); - Count = size; - } - } - @Override - public int getCount() { - return Count; - } - @Override - public int Insert(T obj) { - int index = 0; - while (index < getCount()) - { - if (_collection[index] == null) - { - _collection[index] = obj; - return index; - } - ++index; - } - return -1; - } - @Override - public int Insert(T obj, int position) { - if (position >= getCount() || position < 0) - return -1; - if (_collection[position] == null) { - _collection[position] = obj; - return position; - } - int index = position + 1; - while (index < getCount()) - { - if (_collection[index] == null) - { - _collection[index] = obj; - return index; - } - ++index; - } - index = position - 1; - while (index >= 0) - { - if (_collection[index] == null) - { - _collection[index] = obj; - return index; - } - --index; - } - return -1; - } - @Override - public T Remove(int position) { - if (position >= getCount() || position < 0) - return null; - T obj = (T) _collection[position]; - _collection[position] = null; - return obj; - } - @Override - public T Get(int position) { - if (position >= getCount() || position < 0) return null; - return (T) _collection[position]; - } -} diff --git a/ProjectExcavator/src/Drawings/CanvasFormBulldozerCollection.java b/ProjectExcavator/src/Drawings/CanvasFormBulldozerCollection.java deleted file mode 100644 index e2e7a70..0000000 --- a/ProjectExcavator/src/Drawings/CanvasFormBulldozerCollection.java +++ /dev/null @@ -1,36 +0,0 @@ -package Drawings; - -import CollectionGenericObjects.AbstractCompany; -import CollectionGenericObjects.ICollectionGenericObjects; -import CollectionGenericObjects.MassiveGenericObjects; - -import javax.swing.*; -import java.awt.*; - -public class CanvasFormBulldozerCollection extends JComponent -{ - //неиспользуемые методы - public ICollectionGenericObjects collection = new MassiveGenericObjects(); - public AbstractCompany company = null; - public void SetCollectionToCanvas(AbstractCompany company) { - this.company = company; - } - public CanvasFormBulldozerCollection(){} - public void paintComponent(Graphics g) { - super.paintComponents(g); - if (company == null || company._collection == null) { - return; - } - company.DrawBackground(g); - for (int i = 0; i < company._collection.getCount(); i++) { - - Graphics2D g2d = (Graphics2D) g; - T obj = (T)company._collection.Get(i); - if (obj instanceof DrawingBulldozer) { - ((DrawingBulldozer) obj).DrawTransport(g2d); - } - } - super.repaint(); - } -} - diff --git a/ProjectExcavator/src/Drawings/DrawingBulldozer.java b/ProjectExcavator/src/Drawings/DrawingBulldozer.java index 6b7c9fe..3b0f2e9 100644 --- a/ProjectExcavator/src/Drawings/DrawingBulldozer.java +++ b/ProjectExcavator/src/Drawings/DrawingBulldozer.java @@ -56,17 +56,6 @@ public class DrawingBulldozer extends JPanel { SetTypeRollers(); } - protected DrawingBulldozer(int _drawingExcWidth, int _drawingExcHeight) { - super(); - this._drawingExcWidth = _drawingExcWidth; - this._drawingExcHeight = _drawingExcHeight; - } - - public DrawingBulldozer(EntityBulldozer entity, IDifferentRollers rollers) { - EntityBulldozer = entity; - drawingRollers = rollers; - } - // Смена границ формы отрисовки public void SetPictureSize(int width, int height) { @@ -182,7 +171,7 @@ public class DrawingBulldozer extends JPanel { g.fillOval(_startPosX + 50, _startPosY + 48, 5, 5); int x = _startPosX; - if (drawingRollers != null && drawingRollers.getRollersCount() != null){ + if (drawingRollers.getRollersCount() != null){ switch (drawingRollers.getRollersCount()){ case OneRoller: drawingRollers.DrawRollers(g,x + 34, _startPosY + 55, 8, 8, EntityBulldozer.getBodyColor()); diff --git a/ProjectExcavator/src/Drawings/DrawingExcavator.java b/ProjectExcavator/src/Drawings/DrawingExcavator.java index db98370..6600b23 100644 --- a/ProjectExcavator/src/Drawings/DrawingExcavator.java +++ b/ProjectExcavator/src/Drawings/DrawingExcavator.java @@ -1,6 +1,5 @@ package Drawings; -import DifferentRollers.IDifferentRollers; import Entities.EntityExcavator; import java.awt.*; @@ -12,11 +11,6 @@ public class DrawingExcavator extends DrawingBulldozer{ SetTypeRollers(); } - public DrawingExcavator(EntityExcavator entity, IDifferentRollers decks) { - EntityBulldozer = entity; - drawingRollers = decks; - } - // Отрисовка Экскаватора @Override public void DrawTransport(Graphics2D g){ @@ -24,7 +18,7 @@ public class DrawingExcavator extends DrawingBulldozer{ return; } super.DrawTransport(g); - if (excavator.getProp()){ + if (excavator.Prop){ g.setColor(Color.BLACK); //Опоры //справа @@ -49,7 +43,7 @@ public class DrawingExcavator extends DrawingBulldozer{ g.fillRect(_startPosX + 2, _startPosY + 69, 10, 2); } - if(excavator.getLadle()){ + if(excavator.Ladle){ g.setColor(Color.BLACK); //Ковш //ковш(стрела) diff --git a/ProjectExcavator/src/Entities/EntityBulldozer.java b/ProjectExcavator/src/Entities/EntityBulldozer.java index 6068462..7dfab9e 100644 --- a/ProjectExcavator/src/Entities/EntityBulldozer.java +++ b/ProjectExcavator/src/Entities/EntityBulldozer.java @@ -4,13 +4,7 @@ import java.awt.*; public class EntityBulldozer { private int Speed; - public int getSpeed(){ - return Speed; - } private double Weight; - public double getWeight() { - return Weight; - } private Color BodyColor; public Color getBodyColor() { diff --git a/ProjectExcavator/src/Entities/EntityExcavator.java b/ProjectExcavator/src/Entities/EntityExcavator.java index d19d645..eca47e9 100644 --- a/ProjectExcavator/src/Entities/EntityExcavator.java +++ b/ProjectExcavator/src/Entities/EntityExcavator.java @@ -8,13 +8,7 @@ public class EntityExcavator extends EntityBulldozer{ return AdditionalColor; } public boolean Prop; - public boolean getProp(){ - return Prop; - } public boolean Ladle; - public boolean getLadle(){ - return Ladle; - } public EntityExcavator(int speed, double weight, Color bodyColor, Color additionalColor, boolean prop, boolean ladle){ super(speed, weight, bodyColor); AdditionalColor = additionalColor; diff --git a/ProjectExcavator/src/FormAdditionalCollection.java b/ProjectExcavator/src/FormAdditionalCollection.java deleted file mode 100644 index 7b419ed..0000000 --- a/ProjectExcavator/src/FormAdditionalCollection.java +++ /dev/null @@ -1,137 +0,0 @@ -import CollectionAdditionalObjects.AdditionalCollections; -import CollectionGenericObjects.AbstractCompany; -import DifferentRollers.DrawingRollersCross; -import DifferentRollers.DrawingRollersPlus; -import DifferentRollers.DrawingRollersStar; -import DifferentRollers.IDifferentRollers; -import Drawings.DrawingBulldozer; -import Drawings.CanvasExcavator; -import Drawings.DrawingExcavator; -import Entities.EntityBulldozer; -import Entities.EntityExcavator; - -import javax.swing.*; -import java.awt.*; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.util.Random; - -public class FormAdditionalCollection extends JFrame { - public DrawingBulldozer drawingBulldozer = null; - private AbstractCompany company = null; - private CanvasExcavator canvasExc = new CanvasExcavator(); - private AdditionalCollections additionalCollection = null; - private Random random = new Random(); - private JButton buttonGenerate = new JButton("Создать"); - private JList listEntity = new JList(); - private JList listRollers = new JList(); - public FormAdditionalCollection() { - setTitle("Случайный объект"); - setMinimumSize(new Dimension(650,310)); - additionalCollection = new AdditionalCollections(3, (Class) EntityBulldozer.class, (Class) IDifferentRollers.class); - AddEntities(); - AddRollers(); - buttonGenerate.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - - drawingBulldozer = additionalCollection.CreateAdditionalCollectionBulldozer(); - drawingBulldozer.SetPictureSize(getWidth(), getHeight()); - drawingBulldozer.SetPosition(50,50); - canvasExc._drawingBulldozer = drawingBulldozer; - canvasExc.repaint(); - DrawingBulldozer copyBulldozer; - if (drawingBulldozer instanceof DrawingExcavator) - copyBulldozer = new DrawingExcavator((EntityExcavator) drawingBulldozer.EntityBulldozer, drawingBulldozer.drawingRollers); - else - copyBulldozer = new DrawingBulldozer(drawingBulldozer.EntityBulldozer, drawingBulldozer.drawingRollers); - company._collection.Insert(copyBulldozer); - FormBulldozerCollection.canvasShow(); - - String[] data1 = new String[additionalCollection.CountEntities]; - for (int i = 0; i < additionalCollection.CountEntities; i++) { - EntityBulldozer entity = additionalCollection._collectionEntity[i]; - data1[i] = ToString(entity); - } - String[] data2 = new String[additionalCollection.CountRollers]; - for (int i = 0; i < additionalCollection.CountRollers; i++) { - IDifferentRollers rollers = additionalCollection._collectionRollers[i]; - data2[i] = ToString(rollers); - } - listEntity.setListData(data1); - listRollers.setListData(data2); - } - }); - buttonGenerate.setBounds(450, 10, 100, 50); - add(buttonGenerate); - listEntity.setBounds(10,200,300,60); - listRollers.setBounds(320,200,300,60); - add(listEntity); - add(listRollers); - add(canvasExc); - setVisible(true); - } - private String ToString(EntityBulldozer entity) { - String str = ""; - if (entity instanceof EntityExcavator) str += "EntityExcavator "; - else str += "EntityBulldozer "; - str += entity.getBodyColor().toString(); - return str; - } - private String ToString(IDifferentRollers rollers) { - if (rollers == null || rollers.getRollersCount() == null) - return "Dont have rollers"; - String str = "Deck "; - if (rollers instanceof DrawingRollersCross) str += "Type Cross "; - else if (rollers instanceof DrawingRollersPlus) str += "Type Plus "; - else str += "Type 3 "; - str += rollers.getRollersCount().toString(); - return str; - } - public void AddEntities() { - for (int i = 0; i < additionalCollection.CountEntities; i++) { - random = new Random(); - int speed = random.nextInt(100, 300); - double weight = random.nextInt(1000, 3000); - Color bodycolor = new Color(random.nextInt(256), random.nextInt(256), random.nextInt(256)); - EntityBulldozer entity; - if (random.nextBoolean()) { - entity = new EntityBulldozer(speed, weight, bodycolor); - } - else { - Color additionalcolor = new Color(random.nextInt(256), random.nextInt(256), random.nextInt(256)); - boolean prop = random.nextBoolean(); - boolean ladle = random.nextBoolean(); - entity = new EntityExcavator(speed, weight, bodycolor, - additionalcolor, prop, ladle); - } - additionalCollection.Insert(entity); - } - } - public void AddRollers() { - for (int i = 0; i < additionalCollection.CountRollers; i++) { - random = new Random(); - Integer numberOfRollers = random.nextInt(0, 4); - IDifferentRollers drawingRollers = null; - switch (random.nextInt(0,4)) { - case 1: - drawingRollers = new DrawingRollersCross(); - break; - case 2: - drawingRollers = new DrawingRollersPlus(); - break; - case 3: - drawingRollers = new DrawingRollersStar(); - break; - default: - numberOfRollers = null; - break; - } - if (drawingRollers != null) drawingRollers.setRollersCount(numberOfRollers); - additionalCollection.Insert(drawingRollers); - } - } - void setCompany(AbstractCompany company) { - this.company = company; - } -} diff --git a/ProjectExcavator/src/FormBulldozerCollection.java b/ProjectExcavator/src/FormBulldozerCollection.java deleted file mode 100644 index 730d04b..0000000 --- a/ProjectExcavator/src/FormBulldozerCollection.java +++ /dev/null @@ -1,220 +0,0 @@ -import CollectionGenericObjects.AbstractCompany; -import CollectionGenericObjects.BulldozerSharingService; -import CollectionGenericObjects.MassiveGenericObjects; -import Drawings.CanvasFormBulldozerCollection; -import Drawings.DrawingBulldozer; -import Drawings.DrawingExcavator; - -import javax.swing.*; -import javax.swing.text.MaskFormatter; -import java.awt.*; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.ComponentAdapter; -import java.awt.event.ComponentEvent; -import java.text.ParseException; -import java.util.Random; - -import static java.lang.Integer.parseInt; - -public class FormBulldozerCollection extends JFrame{ - private String title; - private Dimension dimension; - public static CanvasFormBulldozerCollection _canvasExcavator = new CanvasFormBulldozerCollection(); - private static AbstractCompany _company = null; - private JButton CreateButton = new JButton("Создать экскаватор");; - private JButton CreateShipButton = new JButton("Создать бульдозер"); - private JButton RemoveButton = new JButton("Удалить"); - private JButton GoToCheckButton = new JButton("Тест"); - private JButton RandomButton = new JButton("Случайный объект"); - private JButton RefreshButton = new JButton("Обновить"); - private JComboBox ComboBoxCollections = new JComboBox(new String[]{"", "Хранилище"}); - private JFormattedTextField MaskedTextField; - public FormBulldozerCollection(String title, Dimension dimension) { - this.title = title; - this.dimension = dimension; - } - public static void canvasShow() { - _company.SetPosition(); - _canvasExcavator.SetCollectionToCanvas(_company); - _canvasExcavator.repaint(); - } - private void CreateObject(String typeOfClass) { - if (_company == null) return; - int speed = (int)(Math.random() * 300 + 100); - double weight = (double)(Math.random() * 3000 + 1000); - Color bodyColor = getColor(); - DrawingBulldozer drawingBulldozer; - switch (typeOfClass) { - case "DrawingBulldozer": - drawingBulldozer = new DrawingBulldozer(speed, weight, bodyColor); - break; - case "DrawingExcavator": - Color additionalColor = getColor(); - boolean prop = new Random().nextBoolean(); - boolean ladle = new Random().nextBoolean(); - drawingBulldozer = new DrawingExcavator(speed, weight, bodyColor, additionalColor, prop, ladle); - break; - default: return; - } - if (_company._collection.Insert(drawingBulldozer, 0) != -1) { - JOptionPane.showMessageDialog(null, "Объект добавлен"); - canvasShow(); - } - else { - JOptionPane.showMessageDialog(null, "Объект не удалось добавить"); - } - } - public Color getColor() { - Color initializator = new Color((int)(Math.random() * 255 + 0),(int)(Math.random() * 255 + 0),(int)(Math.random() * 255 + 0)); - Color color = JColorChooser.showDialog(this, "Выберите цвет", initializator); - return color; - } - public void Init() { - setTitle(title); - setMinimumSize(dimension); - setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - - MaskFormatter mask = null; - try { - mask = new MaskFormatter("##"); - mask.setPlaceholder("00"); - } catch (ParseException e) { - throw new RuntimeException(e); - } - - MaskedTextField = new JFormattedTextField(mask); - - ComboBoxCollections.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - switch (ComboBoxCollections.getSelectedItem().toString()) { - case "Хранилище": - _company = new BulldozerSharingService(getWidth()-200, getHeight()-70, new MassiveGenericObjects()); - break; - } - } - }); - - CreateShipButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - CreateObject("DrawingBulldozer"); - } - }); - CreateButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - CreateObject("DrawingExcavator"); - } - }); - - RemoveButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - if (_company == null || MaskedTextField.getText() == null) { - return; - } - int pos = parseInt(MaskedTextField.getText()); - int resultConfirmDialog = JOptionPane.showConfirmDialog(null, - "Удалить", "Удаление", - JOptionPane.YES_NO_OPTION); - if (resultConfirmDialog == JOptionPane.NO_OPTION) return; - if (_company._collection.Remove(pos) != null) { - JOptionPane.showMessageDialog(null, "Объект удален"); - canvasShow(); - } - else { - JOptionPane.showMessageDialog(null, "Объект не удалось удалить"); - } - } - }); - - GoToCheckButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - if (_company == null) - { - return; - } - DrawingBulldozer bulldozer = null; - int counter = 100; - while (bulldozer == null) - { - bulldozer = _company.GetRandomObject(); - counter--; - if (counter <= 0) - { - break; - } - } - if (bulldozer == null) - { - return; - } - FormExcavator form = new FormExcavator("Экскаватор", new Dimension(900,565)); - form.Init(bulldozer); - } - }); - - RandomButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - if (_company == null) - { - return; - } - FormAdditionalCollection form = new FormAdditionalCollection(); - form.setCompany(_company); - } - }); - - RefreshButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - if (_company == null) - { - return; - } - canvasShow(); - } - }); - - _canvasExcavator.setBounds(0, 0, getWidth()-200, getHeight()); - ComboBoxCollections.setBounds(getWidth()-190, 10, 150, 20); - CreateShipButton.setBounds(getWidth()-190, 60, 150, 30); - CreateButton.setBounds(getWidth()-190, 100, 150, 30); - MaskedTextField.setBounds(getWidth()-190,200,150,30); - RemoveButton.setBounds(getWidth()-190, 240, 150, 30); - GoToCheckButton.setBounds(getWidth()-190, 280, 150, 30); - RandomButton.setBounds(getWidth()-190, 320, 150, 30); - RefreshButton.setBounds(getWidth()-190, getHeight()-90, 150, 30); - - setSize(dimension.width,dimension.height); - setLayout(null); - add(_canvasExcavator); - add(ComboBoxCollections); - add(CreateShipButton); - add(CreateButton); - add(MaskedTextField); - add(RemoveButton); - add(GoToCheckButton); - add(RandomButton); - add(RefreshButton); - setVisible(true); - - addComponentListener(new ComponentAdapter() { - public void componentResized(ComponentEvent e) { - _canvasExcavator.setBounds(0, 0, getWidth()-200, getHeight()-70); - ComboBoxCollections.setBounds(getWidth()-190, 10, 150, 20); - CreateShipButton.setBounds(getWidth()-190, 60, 150, 30); - CreateButton.setBounds(getWidth()-190, 100, 150, 30); - MaskedTextField.setBounds(getWidth()-190,200,150,30); - RemoveButton.setBounds(getWidth()-190, 240, 150, 30); - GoToCheckButton.setBounds(getWidth()-190, 280, 150, 30); - RandomButton.setBounds(getWidth()-190, 320, 150, 30); - RefreshButton.setBounds(getWidth()-190, getHeight()-90, 150, 30); - } - }); - } -} diff --git a/ProjectExcavator/src/FormExcavator.java b/ProjectExcavator/src/FormExcavator.java index 13b6326..a810d30 100644 --- a/ProjectExcavator/src/FormExcavator.java +++ b/ProjectExcavator/src/FormExcavator.java @@ -1,4 +1,7 @@ -import Drawings.*; +import Drawings.CanvasExcavator; +import Drawings.DirectionType; +import Drawings.DrawingBulldozer; +import Drawings.DrawingExcavator; import MovementStrategy.*; import javax.swing.*; @@ -7,12 +10,15 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; +import java.util.Random; public class FormExcavator extends JFrame { private String title; private Dimension dimension; private int Width, Height; private CanvasExcavator canvasExcavator = new CanvasExcavator(); + private JButton CreateButton = new JButton("Создать экскаватор"); + private JButton CreateBullButton = new JButton("Создать бульдозер"); private JButton UpButton = new JButton(); private JButton DownButton = new JButton(); private JButton LeftButton = new JButton(); @@ -25,17 +31,44 @@ public class FormExcavator extends JFrame { this.dimension = dimension; } - public void Init(DrawingBulldozer bulldozer) { + private void CreateObject(String typeOfClass) { + int StartPositionX = (int)(Math.random() * 90 + 10); + int StartPositionY = (int)(Math.random() * 90 + 10); + int speed = (int)(Math.random() * 300 + 100); + double weight = (double)(Math.random() * 3000 + 1000); + Color bodyColor = new Color((int)(Math.random() * 255 + 0),(int)(Math.random() * 255 + 0),(int)(Math.random() * 255 + 0)); + switch (typeOfClass) { + case "DrawingBulldozer": + canvasExcavator._drawingBulldozer = new DrawingBulldozer(speed, weight, bodyColor); + canvasExcavator._drawingBulldozer.SetPictureSize(Width, Height); + canvasExcavator._drawingBulldozer.SetPosition(StartPositionX, StartPositionY); + canvasExcavator.repaint(); + break; + case "DrawingExcavator": + Color additionalColor = new Color((int)(Math.random() * 255 + 0),(int)(Math.random() * 255 + 0),(int)(Math.random() * 255 + 0)); + boolean sheepPipes = new Random().nextBoolean(); + boolean fuelTank = new Random().nextBoolean(); + canvasExcavator._drawingBulldozer = new DrawingExcavator(speed, weight, bodyColor, additionalColor, sheepPipes, fuelTank); + canvasExcavator._drawingBulldozer.SetPictureSize(Width, Height); + canvasExcavator._drawingBulldozer.SetPosition(StartPositionX, StartPositionY); + canvasExcavator.repaint(); + break; + default: return; + } + _strategy = null; + ComboBoxStrategy.setEnabled(true); + } + + public void Init() { setTitle(title); setMinimumSize(dimension); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - Width = getWidth() - 15; Height = getHeight() - 35; - ComboBoxStrategy.setEnabled(true); _strategy = null; - canvasExcavator._drawingBulldozer = bulldozer; + CreateButton.setName("CREATE"); + CreateBullButton.setName("CREATEBULLBUTTON"); Icon iconUp = new ImageIcon("ProjectExcavator/res/up.png"); UpButton.setIcon(iconUp); UpButton.setName("UP"); @@ -49,6 +82,20 @@ public class FormExcavator extends JFrame { Icon iconRight = new ImageIcon("ProjectExcavator/res/right.png"); RightButton.setIcon(iconRight); + CreateButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + CreateObject("DrawingExcavator"); + } + }); + + CreateBullButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + CreateObject("DrawingBulldozer"); + } + }); + ButtonStrategy.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { @@ -120,12 +167,16 @@ public class FormExcavator extends JFrame { setSize(dimension.width,dimension.height); setLayout(null); canvasExcavator.setBounds(0,0, getWidth(), getHeight()); + CreateButton.setBounds(10, getHeight() - 85, 160, 35); + CreateBullButton.setBounds(180, getHeight() - 85, 160, 35); UpButton.setBounds(getWidth() - 110, getHeight() - 135, 35, 35); DownButton.setBounds(getWidth() - 110, getHeight() - 85, 35, 35); RightButton.setBounds(getWidth() - 60, getHeight() - 85, 35, 35); LeftButton.setBounds(getWidth() - 160, getHeight() - 85, 35, 35); ComboBoxStrategy.setBounds(getWidth() - 170, 10, 140, 25); ButtonStrategy.setBounds(getWidth() - 130, 45, 100, 25); + add(CreateButton); + add(CreateBullButton); add(UpButton); add(DownButton); add(RightButton); @@ -142,6 +193,8 @@ public class FormExcavator extends JFrame { if (canvasExcavator._drawingBulldozer != null) canvasExcavator._drawingBulldozer.SetPictureSize(Width, Height); canvasExcavator.setBounds(0,0, getWidth(), getHeight()); + CreateButton.setBounds(10, getHeight() - 85, 160, 35); + CreateBullButton.setBounds(180, getHeight() - 85, 160, 35); UpButton.setBounds(getWidth() - 110, getHeight() - 135, 35, 35); DownButton.setBounds(getWidth() - 110, getHeight() - 85, 35, 35); RightButton.setBounds(getWidth() - 60, getHeight() - 85, 35, 35); diff --git a/ProjectExcavator/src/Program.java b/ProjectExcavator/src/Program.java index 2ff804c..a6a309a 100644 --- a/ProjectExcavator/src/Program.java +++ b/ProjectExcavator/src/Program.java @@ -2,7 +2,7 @@ import java.awt.*; public class Program { public static void main(String[] args) { - FormBulldozerCollection form = new FormBulldozerCollection("Коллекция экскаваторов", new Dimension(1100, 650)); + FormExcavator form = new FormExcavator("Экскаватор", new Dimension(700, 500)); form.Init(); } } \ No newline at end of file