diff --git a/ProjectElectroTrans/Drawnings.zip b/ProjectElectroTrans/Drawnings.zip new file mode 100644 index 0000000..d3418e1 Binary files /dev/null and b/ProjectElectroTrans/Drawnings.zip differ diff --git a/ProjectElectroTrans/Drawnings/DrawningElectroTrans.java b/ProjectElectroTrans/Drawnings/DrawningElectroTrans.java new file mode 100644 index 0000000..972cf7b --- /dev/null +++ b/ProjectElectroTrans/Drawnings/DrawningElectroTrans.java @@ -0,0 +1,71 @@ +package Drawnings; + +import Entities.EntityElectroTrans; + +import java.awt.*; + +public class DrawningElectroTrans extends DrawningTrans { + private EntityElectroTrans entityElectroTrans; + + public DrawningElectroTrans(int speed, float weight, Color bodyColor, int wheelsType, Color additionalColor, boolean horns, boolean battery) { + super(speed, weight, bodyColor, wheelsType, 110, 60); + entityElectroTrans = new EntityElectroTrans(speed, weight, bodyColor, additionalColor, horns, battery); + } + + public void drawTrans(Graphics g) { + if (entityElectroTrans == null || _startPosX == null || _startPosY == null) { + return; + } + super.drawTrans(g); + Graphics2D g2d = (Graphics2D) g; + + Point[] electroTransHorns; + if (entityElectroTrans.getHorns()) { + electroTransHorns = new Point[]{ + new Point(_startPosX + 40, _startPosY + 10), + new Point(_startPosX + 20, _startPosY), + new Point(_startPosX + 60, _startPosY), + + }; + } else { + electroTransHorns = new Point[]{ + new Point(_startPosX + 40, _startPosY + 7), + new Point(_startPosX + 20, _startPosY + 7), + new Point(_startPosX + 60, _startPosY + 7), + + }; + } + + Polygon electroTransHornsPolygon = new Polygon(); + for (Point point : electroTransHorns) + electroTransHornsPolygon.addPoint(point.x, point.y); + + g2d.setColor(entityElectroTrans.getAdditionalColor()); + g2d.drawPolygon(electroTransHornsPolygon); + + + if (entityElectroTrans.getBattery()) { + Point[] electroTransBattery = new Point[]{ + new Point(_startPosX + 25, _startPosY + 32), + new Point(_startPosX + 25, _startPosY + 36), + new Point(_startPosX + 22, _startPosY + 36), + new Point(_startPosX + 22, _startPosY + 40), + new Point(_startPosX + 25, _startPosY + 40), + new Point(_startPosX + 25, _startPosY + 46), + new Point(_startPosX + 58, _startPosY + 46), + new Point(_startPosX + 58, _startPosY + 32), + + }; + Polygon electroTransBatteryPolygon = new Polygon(); + for (Point point : electroTransBattery) + electroTransBatteryPolygon.addPoint(point.x, point.y); + + g2d.setColor(entityElectroTrans.getAdditionalColor()); + g2d.fillPolygon(electroTransBatteryPolygon); + + } + + } + +} + diff --git a/ProjectElectroTrans/Drawnings/DrawningRectWheels.java b/ProjectElectroTrans/Drawnings/DrawningRectWheels.java new file mode 100644 index 0000000..b1c7bb2 --- /dev/null +++ b/ProjectElectroTrans/Drawnings/DrawningRectWheels.java @@ -0,0 +1,27 @@ +package Drawnings; + +import java.awt.*; + +public class DrawningRectWheels implements IDrawWheels { + private WheelsCount wheelsCount; + + @Override + public void setNumber(int wheelCount) { + for (WheelsCount value : WheelsCount.values()) { + if (value.getEnumNumber() == wheelCount) { + wheelsCount = value; + return; + } + } + } + + @Override + public void drawWheels(Graphics2D g2d, Color color, int _startX, int _startY) { + g2d.setColor(color); + g2d.setStroke(new BasicStroke(4)); + int wheelDistance = 100 / wheelsCount.getEnumNumber(); + for (int i = 0; i < wheelsCount.getEnumNumber(); i++) { + g2d.drawRect(_startX + 5 + i * wheelDistance, _startY + 46, 8, 8); + } + } +} diff --git a/ProjectElectroTrans/Drawnings/DrawningTrans.java b/ProjectElectroTrans/Drawnings/DrawningTrans.java new file mode 100644 index 0000000..c302fab --- /dev/null +++ b/ProjectElectroTrans/Drawnings/DrawningTrans.java @@ -0,0 +1,149 @@ +package Drawnings; + +import Entities.*; +import MovementStrategy.*; +import java.awt.*; +import java.util.Random; + +public class DrawningTrans { + private final EntityTrans entityTran; + + public EntityTrans getEntityTrans() { + return entityTran; + } + private Integer _pictureWidth; + private Integer _pictureHeight; + protected Integer _startPosX; + protected Integer _startPosY; + private int _drawingTransWidth = 110; + private int _drawingTransHeight = 60; + public int GetPosX(){return _startPosX;} + public int GetPosY(){return _startPosY;} + public int GetWidth(){return _drawingTransWidth;} + public int GetHeight(){return _drawingTransHeight;} + private IDrawWheels drawWheels; + + public DrawningTrans(int speed, float weight, Color bodyColor, int wheelsType) { + entityTran = new EntityTrans(speed, weight, bodyColor); + _startPosY = null; + _startPosX = null; + _pictureWidth = null; + _pictureHeight = null; + switch (wheelsType) { + case 0: + drawWheels = new DrawningWheels(); + break; + case 1: + drawWheels = new DrawningTriangleWheels(); + break; + case 2: + drawWheels = new DrawningRectWheels(); + break; + } + Random random = new Random(); + int wheelsCount = random.nextInt(1, 4); + System.out.print(wheelsCount); + drawWheels.setNumber(wheelsCount); + + } + + protected DrawningTrans(int speed, float weight, Color bodyColor, int wheelsType, int transWidth, int transHeight) { + this(speed, weight, bodyColor, wheelsType); + _drawingTransHeight = transHeight; + _drawingTransWidth = transWidth; + + } + public void setPosition(int x, int y) { + if (_pictureHeight == null || _pictureWidth == null) + return; + _startPosX = x; + _startPosY = y; + + if (_drawingTransWidth + x > _pictureWidth || x < 0) { + _startPosX = 0; + } + if (_drawingTransHeight + y > _pictureHeight || y < 0) { + _startPosY = 0; + } + } + public boolean setPictureSize(int width, int height) { + + if (_drawingTransHeight > height || _drawingTransWidth > width) + return false; + _pictureHeight = height; + _pictureWidth = width; + + if (_startPosX != null && _startPosY != null) + { + if (_startPosX + _drawingTransWidth > width) + _startPosX = width - _drawingTransWidth; + if (_startPosY + _drawingTransHeight > height) + _startPosY = height - _drawingTransHeight; + } + + return true; + } + + public boolean moveTransport(MovementDirection direction) { + if (entityTran == null || _pictureWidth == null || _pictureHeight == null) + return false; + switch (direction) { + case MovementDirection.Left: + if (_startPosX - entityTran.getStep() > 0) + _startPosX -= (int) entityTran.getStep(); + return true; + case MovementDirection.Up: + if (_startPosY - entityTran.getStep() > 0) + _startPosY -= (int) entityTran.getStep(); + return true; + case MovementDirection.Right: + if (_startPosX + entityTran.getStep() < _pictureWidth - _drawingTransWidth) + _startPosX += (int) entityTran.getStep(); + return true; + case MovementDirection.Down: + if (_startPosY + entityTran.getStep() < _pictureHeight - _drawingTransHeight) + _startPosY += (int) entityTran.getStep(); + return true; + default: + return false; + } + } + public void drawTrans(Graphics g) { + if (entityTran == null || _startPosX == null || _startPosY == null) { + return; + } + + Graphics2D g2d = (Graphics2D) g; + + Point[] electroTransBorders = new Point[]{ + new Point(_startPosX, _startPosY + 30), + new Point(_startPosX + 10, _startPosY + 10), + new Point(_startPosX + 70, _startPosY + 10), + new Point(_startPosX + 80, _startPosY + 30), + new Point(_startPosX + 80, _startPosY + 50), + new Point(_startPosX, _startPosY + 50), + }; + Polygon electroTransPolygon = new Polygon(); + for (Point point : electroTransBorders) + electroTransPolygon.addPoint(point.x, point.y); + + g2d.setColor(entityTran.getBodyColor()); + g2d.drawPolygon(electroTransPolygon); + + Point[] electroTransGlass = new Point[]{ + new Point(_startPosX + 2, _startPosY + 30), + new Point(_startPosX + 10, _startPosY + 13), + new Point(_startPosX + 70, _startPosY + 13), + new Point(_startPosX + 78, _startPosY + 30), + }; + + Polygon electroTransGlassPolygon = new Polygon(); + for (Point point : electroTransGlass) + electroTransGlassPolygon.addPoint(point.x, point.y); + + g2d.setColor(entityTran.getBodyColor()); + g2d.drawPolygon(electroTransGlassPolygon); + + drawWheels.drawWheels(g2d, entityTran.getBodyColor(), _startPosX, _startPosY); + } +} \ No newline at end of file diff --git a/ProjectElectroTrans/src/Drawnings/DrawningTriangleWheels.java b/ProjectElectroTrans/Drawnings/DrawningTriangleWheels.java similarity index 100% rename from ProjectElectroTrans/src/Drawnings/DrawningTriangleWheels.java rename to ProjectElectroTrans/Drawnings/DrawningTriangleWheels.java diff --git a/ProjectElectroTrans/Drawnings/DrawningWheels.java b/ProjectElectroTrans/Drawnings/DrawningWheels.java new file mode 100644 index 0000000..826f625 --- /dev/null +++ b/ProjectElectroTrans/Drawnings/DrawningWheels.java @@ -0,0 +1,27 @@ +package Drawnings; + +import java.awt.*; + +public class DrawningWheels implements IDrawWheels { + private WheelsCount wheelsCount; + + @Override + public void setNumber(int wheelCount) { + for (WheelsCount value : WheelsCount.values()) { + if (value.getEnumNumber() == wheelCount) { + wheelsCount = value; + return; + } + } + } + + @Override + public void drawWheels(Graphics2D g2d, Color color, int _startX, int _startY) { + g2d.setColor(color); + g2d.setStroke(new BasicStroke(4)); + int wheelDistance = 100 / wheelsCount.getEnumNumber(); + for (int i = 0; i < wheelsCount.getEnumNumber(); i++) { + g2d.drawOval(_startX + 5 + i * wheelDistance, _startY + 46, 8, 8); + } + } +} diff --git a/ProjectElectroTrans/Drawnings/IDrawWheels.java b/ProjectElectroTrans/Drawnings/IDrawWheels.java new file mode 100644 index 0000000..c1b4355 --- /dev/null +++ b/ProjectElectroTrans/Drawnings/IDrawWheels.java @@ -0,0 +1,8 @@ +package Drawnings; + +import java.awt.*; + +public interface IDrawWheels { + void setNumber(int x); + void drawWheels(Graphics2D graphics2D, Color color, int _startX, int _startY); +} diff --git a/ProjectElectroTrans/Drawnings/WheelsCount.java b/ProjectElectroTrans/Drawnings/WheelsCount.java new file mode 100644 index 0000000..483d4da --- /dev/null +++ b/ProjectElectroTrans/Drawnings/WheelsCount.java @@ -0,0 +1,16 @@ +package Drawnings; + +public enum WheelsCount { + Two(2), + Three(3), + Four(4); + + final private int EnumNumber; + WheelsCount(int enumNumber) { + EnumNumber = enumNumber; + } + public int getEnumNumber() { + return EnumNumber; + } + +} diff --git a/ProjectElectroTrans/src/CollectionGenericObjects/AbstractCompany.java b/ProjectElectroTrans/src/CollectionGenericObjects/AbstractCompany.java new file mode 100644 index 0000000..629ddf1 --- /dev/null +++ b/ProjectElectroTrans/src/CollectionGenericObjects/AbstractCompany.java @@ -0,0 +1,60 @@ +package CollectionGenericObjects; + +import Drawnings.DrawningTrans; + +import java.awt.*; +import java.util.Random; + +public abstract class AbstractCompany { + protected final int _placeSizeWidth = 210; + protected final int _placeSizeHeight = 120; + protected final int _pictureWidth; + protected final int _pictureHeight; + protected ICollectionGenericObjects _collection = null; + public int getMaxCount() { + return _pictureWidth * _pictureHeight / (_placeSizeWidth*_placeSizeHeight); + } + public AbstractCompany(int picWidth, int picHeight, ICollectionGenericObjects collection) { + this._pictureWidth = picWidth; + this._pictureHeight = picHeight; + this._collection = collection; + int maxCount = getMaxCount(); + _collection.setMaxCount(maxCount); + } + public static int add(AbstractCompany company ,DrawningTrans trans) { + if (company._collection == null) { + return -1; + } + return company._collection.insert(trans); + } + + public static DrawningTrans remove(AbstractCompany company, int position) { + if (company._collection == null) { + return null; + } + return company._collection.remove(position); + } + public DrawningTrans getRandomObject() { + if (_collection == null) { + return null; + } + Random rnd = new Random(); + return _collection.get(rnd.nextInt(0, _collection.getCount() + 1)); + } + public void show(Graphics g) { + drawBackground(g); + setObjectsPosition(); + if (_collection == null) { + return; + } + for(int i = 0; i < _collection.getCount(); i++) { + if(_collection.get(i) != null) { + _collection.get(i).drawTrans(g); + } + } + } + protected abstract void drawBackground(Graphics g); + protected abstract void setObjectsPosition(); + + +} diff --git a/ProjectElectroTrans/src/CollectionGenericObjects/Constructor.java b/ProjectElectroTrans/src/CollectionGenericObjects/Constructor.java new file mode 100644 index 0000000..b6090ba --- /dev/null +++ b/ProjectElectroTrans/src/CollectionGenericObjects/Constructor.java @@ -0,0 +1,53 @@ +package CollectionGenericObjects; + +import Drawnings.DrawningTrans; +import Drawnings.DrawningElectroTrans; +import Drawnings.IDrawWheels; +import Entities.EntityTrans; +import Entities.EntityElectroTrans; + +import java.util.ArrayList; +import java.util.Random; + +public class Constructor { + private ArrayList entitiesList = new ArrayList<>(); + private ArrayList wheelsList = new ArrayList<>(); + public void addTrans(T obj) { + entitiesList.add(obj); + } + public void addTrans(U obj) { + wheelsList.add(obj); + } + + public DrawningTrans getRandomTrans() { + Random rnd = new Random(); + int entityIndex = rnd.nextInt(0, 3); + int wheelsIndex = rnd.nextInt(0, 3); + + T entity = entitiesList.get(entityIndex); + U wheels = wheelsList.get(wheelsIndex); + + return (entity instanceof EntityElectroTrans) ? + new DrawningElectroTrans((EntityElectroTrans) entity, wheels) : + new DrawningTrans(entity, wheels); + } + + public String getEntityDescription(int index) { + if (index < 0 || index >= entitiesList.size()) { + return null; + } + + T entity = entitiesList.get(index); + String entityClassName = (entity instanceof EntityElectroTrans) ? "EntityElectroTrans" : "EntityTrans"; + + return String.format("%s = %s", entityClassName, entity); + } + + public String getPaddlesDescription(int index) { + if (index < 0 || index >= wheelsList.size()) { + return null; + } + return wheelsList.get(index).toString(); + } + +} diff --git a/ProjectElectroTrans/src/CollectionGenericObjects/ICollectionGenericObjects.java b/ProjectElectroTrans/src/CollectionGenericObjects/ICollectionGenericObjects.java new file mode 100644 index 0000000..8f7e1f8 --- /dev/null +++ b/ProjectElectroTrans/src/CollectionGenericObjects/ICollectionGenericObjects.java @@ -0,0 +1,17 @@ +package CollectionGenericObjects; + +import Drawnings.DrawningTrans; + +public interface ICollectionGenericObjects { + int getCount(); + + void setMaxCount(int count); + + int insert(T obj); + + int insert(T obj, int index); + + T remove(int index); + + T get(int index); +} diff --git a/ProjectElectroTrans/src/CollectionGenericObjects/MassiveGenericObjects.java b/ProjectElectroTrans/src/CollectionGenericObjects/MassiveGenericObjects.java new file mode 100644 index 0000000..5c5df3e --- /dev/null +++ b/ProjectElectroTrans/src/CollectionGenericObjects/MassiveGenericObjects.java @@ -0,0 +1,91 @@ +package CollectionGenericObjects; + +import Drawnings.DrawningTrans; +import java.util.ArrayList; + +public class MassiveGenericObjects implements ICollectionGenericObjects { + private ArrayList _collection; + public MassiveGenericObjects() { + _collection = new ArrayList<>(); + + } + int maxCount = 0; + int realSize = 0; + @Override + public int getCount() { + return _collection.size(); + } + @Override + public int insert(T obj) { + return insert(obj, 0); + } + + @Override + public int insert(T obj, int position) { + if (position > maxCount|| position < 0) { + return -1; + } + + for (int i = position; i < maxCount; i++) { + if (_collection.get(i) == null) { + _collection.set(i, obj); + realSize++; + return i; + } + } + for (int i = position; i > 0; i--) { + if (_collection.get(i) == null) { + _collection.set(i, obj); + realSize++; + return i; + } + } + return -1; + } + + @Override + public T remove(int position) { + if (position < 0 || position >= maxCount) { + return null; + } + if (_collection.get(position) != null) { + T bf = _collection.get(position); + _collection.set(position, null); + --realSize; + return bf; + } + return null; + } + + @Override + public T get(int position) { + if (position >= 0 && position < _collection.size()) { + return _collection.get(position); + } + else { + return null; + } + } + + @Override + public void setMaxCount(int count) { + if (count > 0) { + if (!_collection.isEmpty()) { + ArrayList bfLoc = new ArrayList<>(count); + bfLoc.addAll(0, _collection); + _collection = bfLoc; + for (int i = 0; i < count - maxCount; i++) { + _collection.add(null); + } + } else { + _collection = new ArrayList<>(count); + for (int i = 0; i < count; i++) { + _collection.add(null); + } + + } + maxCount = count; + + } + } +} diff --git a/ProjectElectroTrans/src/CollectionGenericObjects/TransSharingService.java b/ProjectElectroTrans/src/CollectionGenericObjects/TransSharingService.java new file mode 100644 index 0000000..40a3093 --- /dev/null +++ b/ProjectElectroTrans/src/CollectionGenericObjects/TransSharingService.java @@ -0,0 +1,63 @@ +package CollectionGenericObjects; + +import Drawnings.DrawningTrans; + +import java.awt.*; +import java.util.ArrayList; +import java.util.List; + +public class TransSharingService extends AbstractCompany { + private final List locCoord = new ArrayList<>(); + private int numRows, numCols; + public TransSharingService(int picWidth, int picHeight, ICollectionGenericObjects collection) { + super(picWidth, picHeight, collection); + _collection.setMaxCount(30); + + } + @Override + protected void drawBackground(Graphics g) { + Color backgroundColor = new Color(135, 206, 235); + + g.setColor(backgroundColor); + g.fillRect(0, 0, _pictureWidth, _pictureHeight); + + g.setColor(new Color(165, 42, 42)); // Brown + int offsetX = 10, offsetY = -5; + int x = 1 + offsetX, y = _pictureHeight - _placeSizeHeight + offsetY; + numRows = 0; + while (y >= 0) { + int numCols = 0; + while (x + _placeSizeWidth <= _pictureWidth) { + numCols++; + g.drawLine(x, y, x + _placeSizeWidth / 2, y); + g.drawLine(x, y, x, y + _placeSizeHeight + 4); + locCoord.add(new Point(x, y)); + x += _placeSizeWidth + 2; + } + numRows++; + x = 1 + offsetX; + y -= _placeSizeHeight + 5 + offsetY; + } + + } + + @Override + protected void setObjectsPosition() { + if (locCoord == null || _collection == null) { + return; + } + int row = numRows - 1, col = numCols; + for (int i=0;i< _collection.getCount(); i++, col--) { + if (_collection.get(i) != null) { + _collection.get(i).setPictureSize(_pictureWidth, _pictureHeight); + _collection.get(i).setPosition((int)locCoord.get(row*numCols - col).getX() + 5, + (int)locCoord.get(row*numCols - col).getY() + 9); + if (col == 1) { + col = numCols + 1; + row--; + } + } + + } + } +} diff --git a/ProjectElectroTrans/src/Drawnings/DrawningAbstractCompany.java b/ProjectElectroTrans/src/Drawnings/DrawningAbstractCompany.java new file mode 100644 index 0000000..c0ef58e --- /dev/null +++ b/ProjectElectroTrans/src/Drawnings/DrawningAbstractCompany.java @@ -0,0 +1,127 @@ +package Drawnings; + +import CollectionGenericObjects.AbstractCompany; +import CollectionGenericObjects.MassiveGenericObjects; +import CollectionGenericObjects.TransSharingService; +import Forms.FormConstructor; +import Forms.FormElectroTrans; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.WindowEvent; +import java.util.Random; + +public class DrawningAbstractCompany extends JComponent { + private AbstractCompany _company = null; + public void collectionComboBox_SelectedIndexChanged(JComboBox obj, int width, int height) { + switch (obj.getSelectedIndex()) { + case 1: + _company = new TransSharingService(width, height, new MassiveGenericObjects()); + break; + default: + break; + } + } + public void createObject(int type, JFrame obj) { + if (_company == null) { + return; + } + DrawningTrans _drawningTrans; + Random random = new Random(); + switch (type) { + case 0: + _drawningTrans = new DrawningTrans(random.nextInt(70 - 30) + 30, random.nextInt(500 - 100) + 100, + getColorR(obj, random), random.nextInt(3)); + break; + case 1: + _drawningTrans = new DrawningElectroTrans(random.nextInt(70 - 30) + 30, random.nextInt(500 - 100) + 100, + getColorR(obj, random), random.nextInt(3), + getColorR(obj, random), + random.nextBoolean(), random.nextBoolean()); + break; + default: + return; + } + if (AbstractCompany.add(_company, _drawningTrans) != -1) { + JOptionPane.showMessageDialog(obj, "Объект добавлен"); + } + else { + JOptionPane.showMessageDialog(obj, "Не удалось добавить объект"); + } + } + Color getColorR(JFrame obj, Random rnd) { + Color color = new Color(rnd.nextInt(0, 256), rnd.nextInt(0, 256), rnd.nextInt(0, 256)); + if (obj == null) { + return color; + } + JColorChooser colorChooser = new JColorChooser(); + colorChooser.setColor(color); + return JColorChooser.showDialog(obj, "Выберите цвет", color); + } + + public void deleteButtonAction(int val, Frame obj) { + if (_company == null) { + return; + } + int result = JOptionPane.showConfirmDialog( + obj, + "Удалить объект?", + "Подтвердение", + JOptionPane.YES_NO_OPTION); + if (result == JOptionPane.YES_OPTION) { + if (AbstractCompany.remove(_company, val) != null) { + JOptionPane.showMessageDialog(obj, "Выполнено"); + } else { + JOptionPane.showMessageDialog(obj, "Удаление не удалось"); + } + } + } + public void goToCheckButtonAction() { + if (_company == null) { + return; + } + DrawningTrans trans = null; + int counter = 100; + while (trans == null && counter > 0) { + trans = _company.getRandomObject(); + --counter; + } + if (trans == null) { + return; + } + FormElectroTrans formElectroTrans = new FormElectroTrans(); + formElectroTrans.setDrawningTrans(trans); + formElectroTrans.OpenFrame(); + + + } + + private DrawningTrans createObject; + public void getObjFromConstructor(JFrame obj) { + if (_company == null) { + return; + } + FormConstructor formConstructor = new FormConstructor(); + formConstructor.OpenFrame(); + + formConstructor.getAddButton().addActionListener(e -> { + createObject = formConstructor.getConstructor().getObj(); + if (AbstractCompany.add(_company, createObject) != -1) { + JOptionPane.showMessageDialog(obj, "Выполнено"); + + } else { + JOptionPane.showMessageDialog(obj, "Добавление не удалось"); + } + obj.repaint(); + formConstructor.getjFrameConstructor().dispatchEvent(new WindowEvent(formConstructor.getjFrameConstructor(), WindowEvent.WINDOW_CLOSING)); + }); + } + @Override + public void paintComponent(Graphics g) { + super.paintComponent(g); + if (_company == null) { + return; + } + _company.show(g); + } +} diff --git a/ProjectElectroTrans/src/Drawnings/DrawningConstructor.java b/ProjectElectroTrans/src/Drawnings/DrawningConstructor.java new file mode 100644 index 0000000..4536365 --- /dev/null +++ b/ProjectElectroTrans/src/Drawnings/DrawningConstructor.java @@ -0,0 +1,84 @@ +package Drawnings; + +import CollectionGenericObjects.Constructor; +import Entities.EntityTrans; +import Entities.EntityElectroTrans; + +import javax.swing.*; +import java.awt.*; +import java.util.Random; + +public class DrawningConstructor extends JComponent { + + Constructor constructor = new Constructor<>(); + private DrawningTrans obj; + + public DrawningTrans getObj() { + return obj; + } + + public DrawningConstructor() { + for (int i = 0; i < 3; i++) { + EntityTrans _entityBoat = null; + IDrawWheels _drawWheels = null; + Random rnd = new Random(); + int wheelsType = rnd.nextInt(3); + switch (wheelsType) { + case 0: + _drawWheels = new DrawningWheels(); + break; + case 1: + _drawWheels = new DrawningRectWheels(); + break; + case 2: + _drawWheels = new DrawningRectangleWheels(); + break; + } + int wheelsCount = rnd.nextInt(1, 4); + _drawWheels.setNumber(wheelsCount); + + int typeBoat = rnd.nextInt(0, 2); + + switch (typeBoat) { + case 0: + _entityBoat = new EntityTrans(rnd.nextInt(70 - 30) + 30, rnd.nextInt(500 - 100) + 100, + new Color(rnd.nextInt(0, 256), rnd.nextInt(0, 256), rnd.nextInt(0, 256))); + break; + case 1: + _entityBoat = new EntityElectroTrans(rnd.nextInt(70 - 30) + 30, rnd.nextInt(500 - 100) + 100, + 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)), + rnd.nextBoolean(), rnd.nextBoolean()); + break; + } + constructor.addTrans(_entityBoat); + constructor.addTrans(_drawWheels); + } + obj = constructor.getRandomTrans(); + + } + + public void reCreateObj() { + obj = constructor.getRandomTrans(); + } + + public String getEntityString(int index) { + return constructor.getEntityDescription(index); + } + + public String getWheelsString(int index) { + return constructor.getPaddlesDescription(index); + } + + @Override + public void paintComponent(Graphics g) { + super.paintComponent(g); + if (obj != null) { + obj.setPosition(10, 30); + obj.setPictureSize(400, 300); + obj.drawTrans(g); + } + super.repaint(); + + } +} diff --git a/ProjectElectroTrans/src/Drawnings/DrawningElectroTrans.java b/ProjectElectroTrans/src/Drawnings/DrawningElectroTrans.java index c0ce001..157cf11 100644 --- a/ProjectElectroTrans/src/Drawnings/DrawningElectroTrans.java +++ b/ProjectElectroTrans/src/Drawnings/DrawningElectroTrans.java @@ -5,20 +5,43 @@ import Entities.EntityElectroTrans; import java.awt.*; public class DrawningElectroTrans extends DrawningTrans { - private EntityElectroTrans entityElectroTrans; - - public DrawningElectroTrans(int speed, float weight, Color bodyColor, int paddlesType, Color additionalColor, boolean horns, boolean battery) { - super(speed, weight, bodyColor, paddlesType, 110, 60); - entityElectroTrans = new EntityElectroTrans(speed, weight, bodyColor, additionalColor, horns, battery); + public DrawningElectroTrans(int speed, float weight, Color bodyColor, int wheelsType, Color additionalColor, boolean sail, boolean floaters) { + super(speed, weight, bodyColor, wheelsType, 110, 80); + entityTran = new EntityElectroTrans(speed, weight, bodyColor, additionalColor, floaters, sail); } + public DrawningElectroTrans(EntityElectroTrans entity, IDrawWheels wheels) { + super(entity, wheels); + } + private void drawFloater(int y0, Color additionalColor, Graphics2D g2d) + { + g2d.setColor(additionalColor); + g2d.setStroke(new BasicStroke(2)); + Point[] floater = new Point[] + { + new Point(_startPosX + 10, _startPosY + y0 + 6), + new Point(_startPosX + 90, _startPosY + y0 + 6), + new Point(_startPosX + 110, _startPosY + y0 + 3), + new Point(_startPosX + 90, _startPosY + y0), + new Point(_startPosX + 10, _startPosY + y0), + }; + Polygon floaterPolygon = new Polygon(); + for (Point point: floater) { + floaterPolygon.addPoint(point.x, point.y); + } + g2d.fillPolygon(floaterPolygon); + g2d.drawPolygon(floaterPolygon); + } + @Override public void drawTrans(Graphics g) { - if (entityElectroTrans == null || _startPosX == null || _startPosY == null) { + + if (entityTran == null || !(entityTran instanceof EntityElectroTrans entityElectroTrans) || _startPosX == null || _startPosY == null) { return; } super.drawTrans(g); Graphics2D g2d = (Graphics2D) g; + Point[] electroTransHorns; if (entityElectroTrans.getHorns()) { electroTransHorns = new Point[]{ @@ -64,8 +87,5 @@ public class DrawningElectroTrans extends DrawningTrans { g2d.fillPolygon(electroTransBatteryPolygon); } - } - } - diff --git a/ProjectElectroTrans/src/Drawnings/DrawningFormCatamaran.java b/ProjectElectroTrans/src/Drawnings/DrawningFormCatamaran.java new file mode 100644 index 0000000..ea8c4b6 --- /dev/null +++ b/ProjectElectroTrans/src/Drawnings/DrawningFormCatamaran.java @@ -0,0 +1,71 @@ +package Drawnings; + +import MovementStrategy.*; + +import javax.swing.*; +import java.awt.*; + +public class DrawningFormCatamaran extends JComponent { + DrawningTrans drawningTrans; + + private int _pictureHeight = -1; + private int _pictureWidth = -1; + private AbstractStrategy _strategy; + public void setDrawningTrans(DrawningTrans drawningTrans) { + this.drawningTrans = drawningTrans; + } + + public boolean setPictureSize(int width, int height) { + if (drawningTrans.GetHeight() > height || drawningTrans.GetWidth() > width) + return false; + _pictureHeight = height; + _pictureWidth = width; + return true; + } + public void buttonStrategyStep(JComboBox comboBox) { + if (drawningTrans == null) + return; + if (comboBox.isEnabled()) { + switch (comboBox.getSelectedIndex()) { + case 0: + _strategy = new MoveToCenter(); + break; + case 1: + _strategy = new MoveToBorder(); + break; + + default: + _strategy = null; + break; + + } + if (_strategy == null) { + return; + } + _strategy.SetData(new MoveableTrans(drawningTrans), _pictureWidth, _pictureHeight); + } + if (_strategy == null) { + return; + } + comboBox.setEnabled(false); + _strategy.MakeStep(); + if (_strategy.GetStatus() == StrategyStatus.Finish) { + comboBox.setEnabled(true); + _strategy = null; + } + + } + public void MoveButtonsAction(MovementDirection direction) { + if (drawningTrans == null) + return; + drawningTrans.moveTransport(direction); + } + @Override + protected void paintComponent(Graphics g) { + super.paintComponent(g); + if (drawningTrans == null) { + return; + } + drawningTrans.drawTrans(g); + } +} diff --git a/ProjectElectroTrans/src/Drawnings/DrawningRectWheels.java b/ProjectElectroTrans/src/Drawnings/DrawningRectWheels.java index b1c7bb2..dfee4fd 100644 --- a/ProjectElectroTrans/src/Drawnings/DrawningRectWheels.java +++ b/ProjectElectroTrans/src/Drawnings/DrawningRectWheels.java @@ -1,27 +1,32 @@ package Drawnings; - import java.awt.*; public class DrawningRectWheels implements IDrawWheels { - private WheelsCount wheelsCount; + private WheelsCount _wheelsCount = WheelsCount.Two; @Override - public void setNumber(int wheelCount) { + public void setNumber(int wheelsCount) { for (WheelsCount value : WheelsCount.values()) { - if (value.getEnumNumber() == wheelCount) { - wheelsCount = value; + if (value.getEnumNumber() == wheelsCount) { + _wheelsCount = value; return; } } } - @Override public void drawWheels(Graphics2D g2d, Color color, int _startX, int _startY) { g2d.setColor(color); g2d.setStroke(new BasicStroke(4)); - int wheelDistance = 100 / wheelsCount.getEnumNumber(); - for (int i = 0; i < wheelsCount.getEnumNumber(); i++) { + int wheelDistance = 100 / _wheelsCount.getEnumNumber(); + for (int i = 0; i < _wheelsCount.getEnumNumber(); i++) { g2d.drawRect(_startX + 5 + i * wheelDistance, _startY + 46, 8, 8); } + + } + @Override + public String toString() { + String buffer = ""; + buffer += "Тип: квадратные, Количество колес: " + _wheelsCount.getEnumNumber() * 2; + return buffer; } } diff --git a/ProjectElectroTrans/src/Drawnings/DrawningRectangleWheels.java b/ProjectElectroTrans/src/Drawnings/DrawningRectangleWheels.java new file mode 100644 index 0000000..7010019 --- /dev/null +++ b/ProjectElectroTrans/src/Drawnings/DrawningRectangleWheels.java @@ -0,0 +1,35 @@ +package Drawnings; + +import java.awt.*; + +public class DrawningRectangleWheels implements IDrawWheels { + private WheelsCount _wheelsCount; + + @Override + public void setNumber(int wheelsCount) { + for (WheelsCount value : WheelsCount.values()) { + if (value.getEnumNumber() == wheelsCount) { + _wheelsCount = value; + return; + } + } + } + + @Override + public void drawWheels(Graphics2D g2d, Color color, int _startX, int _startY) { + g2d.setColor(color); + g2d.setStroke(new BasicStroke(4)); + int wheelDistance = 100 / _wheelsCount.getEnumNumber(); + for (int i = 0; i < _wheelsCount.getEnumNumber(); i++) { + g2d.drawLine(_startX + 5 + i * wheelDistance - 4, (int) _startY + 44, _startX + 5 + i * wheelDistance + 4, (int) _startY + 44); + g2d.drawLine(_startX + 5 + i * wheelDistance + 4, (int) _startY + 44, _startX + 5 + i * wheelDistance, (int) _startY + 48); + g2d.drawLine(_startX + 5 + i * wheelDistance, (int) _startY + 48, _startX + 5 + i * wheelDistance - 4, (int) _startY + 44); + } + } + @Override + public String toString() { + String buffer = ""; + buffer += "Тип: прямоугольники, Количество колес: " + _wheelsCount.getEnumNumber() * 2; + return buffer; + } +} diff --git a/ProjectElectroTrans/src/Drawnings/DrawningTrans.java b/ProjectElectroTrans/src/Drawnings/DrawningTrans.java index 7cd7181..51892f2 100644 --- a/ProjectElectroTrans/src/Drawnings/DrawningTrans.java +++ b/ProjectElectroTrans/src/Drawnings/DrawningTrans.java @@ -1,27 +1,26 @@ package Drawnings; -import Entities.*; +import Entities.EntityTrans; import MovementStrategy.*; import java.awt.*; import java.util.Random; public class DrawningTrans { - private final EntityTrans entityTran; - - public EntityTrans getEntityTrans() { + public EntityTrans entityTran; + public EntityTrans getEntityTran() { return entityTran; } private Integer _pictureWidth; private Integer _pictureHeight; protected Integer _startPosX; protected Integer _startPosY; - private int _drawingTransWidth = 110; - private int _drawingTransHeight = 60; - public int GetPosX(){return _startPosX;} - public int GetPosY(){return _startPosY;} - public int GetWidth(){return _drawingTransWidth;} - public int GetHeight(){return _drawingTransHeight;} - private IDrawWheels drawWheels; + private int _drawingBoatWidth = 107; + private int _drawingBoatHeight = 80; + public Integer GetPosX(){return _startPosX;} + public Integer GetPosY(){return _startPosY;} + public int GetWidth(){return _drawingBoatWidth;} + public int GetHeight(){return _drawingBoatHeight;} + public IDrawWheels drawWheels; public DrawningTrans(int speed, float weight, Color bodyColor, int wheelsType) { entityTran = new EntityTrans(speed, weight, bodyColor); @@ -34,53 +33,55 @@ public class DrawningTrans { drawWheels = new DrawningWheels(); break; case 1: - drawWheels = new DrawningTriangleWheels(); + drawWheels = new DrawningRectWheels(); break; case 2: - drawWheels = new DrawningRectWheels(); + drawWheels = new DrawningRectangleWheels(); break; } Random random = new Random(); - int wheelsCount = random.nextInt(2, 4); - System.out.print(wheelsCount); + int wheelsCount = random.nextInt(1,4); drawWheels.setNumber(wheelsCount); } - protected DrawningTrans(int speed, float weight, Color bodyColor, int wheelsType, int transWidth, int transHeight) { + protected DrawningTrans(int speed, float weight, Color bodyColor, int wheelsType, int boatWidth, int boatHeight) { this(speed, weight, bodyColor, wheelsType); - _drawingTransHeight = transHeight; - _drawingTransWidth = transWidth; + _drawingBoatHeight = boatHeight; + _drawingBoatWidth = boatWidth; } + public DrawningTrans(EntityTrans _entityBoat, IDrawWheels _drawPaddles) { + entityTran = _entityBoat; + drawWheels = _drawPaddles; + } public void setPosition(int x, int y) { if (_pictureHeight == null || _pictureWidth == null) return; _startPosX = x; _startPosY = y; - if (_drawingTransWidth + x > _pictureWidth || x < 0) { + if (_drawingBoatWidth + x > _pictureWidth || x < 0) { _startPosX = 0; } - if (_drawingTransHeight + y > _pictureHeight || y < 0) { + if (_drawingBoatHeight + y > _pictureHeight || y < 0) { _startPosY = 0; } } public boolean setPictureSize(int width, int height) { - if (_drawingTransHeight > height || _drawingTransWidth > width) + if (_drawingBoatHeight > height || _drawingBoatWidth > width) return false; _pictureHeight = height; _pictureWidth = width; if (_startPosX != null && _startPosY != null) { - if (_startPosX + _drawingTransWidth > width) - _startPosX = width - _drawingTransWidth; - if (_startPosY + _drawingTransHeight > height) - _startPosY = height - _drawingTransHeight; + if (_startPosX + _drawingBoatWidth > width) + _startPosX = width - _drawingBoatWidth; + if (_startPosY + _drawingBoatHeight > height) + _startPosY = height - _drawingBoatHeight; } - return true; } @@ -97,11 +98,11 @@ public class DrawningTrans { _startPosY -= (int) entityTran.getStep(); return true; case MovementDirection.Right: - if (_startPosX + entityTran.getStep() < _pictureWidth - _drawingTransWidth) + if (_startPosX + entityTran.getStep() < _pictureWidth - _drawingBoatWidth) _startPosX += (int) entityTran.getStep(); return true; case MovementDirection.Down: - if (_startPosY + entityTran.getStep() < _pictureHeight - _drawingTransHeight) + if (_startPosY + entityTran.getStep() < _pictureHeight - _drawingBoatHeight) _startPosY += (int) entityTran.getStep(); return true; default: @@ -146,4 +147,4 @@ public class DrawningTrans { drawWheels.drawWheels(g2d, entityTran.getBodyColor(), _startPosX, _startPosY); } -} \ No newline at end of file +} diff --git a/ProjectElectroTrans/src/Drawnings/DrawningWheels.java b/ProjectElectroTrans/src/Drawnings/DrawningWheels.java index 826f625..d18060d 100644 --- a/ProjectElectroTrans/src/Drawnings/DrawningWheels.java +++ b/ProjectElectroTrans/src/Drawnings/DrawningWheels.java @@ -3,25 +3,29 @@ package Drawnings; import java.awt.*; public class DrawningWheels implements IDrawWheels { - private WheelsCount wheelsCount; - + private WheelsCount _wheelsCount; @Override - public void setNumber(int wheelCount) { + public void setNumber(int wheelsCount) { for (WheelsCount value : WheelsCount.values()) { - if (value.getEnumNumber() == wheelCount) { - wheelsCount = value; + if (value.getEnumNumber() == wheelsCount) { + _wheelsCount = value; return; } } } - @Override public void drawWheels(Graphics2D g2d, Color color, int _startX, int _startY) { g2d.setColor(color); g2d.setStroke(new BasicStroke(4)); - int wheelDistance = 100 / wheelsCount.getEnumNumber(); - for (int i = 0; i < wheelsCount.getEnumNumber(); i++) { + int wheelDistance = 100 / _wheelsCount.getEnumNumber(); + for (int i = 0; i < _wheelsCount.getEnumNumber(); i++) { g2d.drawOval(_startX + 5 + i * wheelDistance, _startY + 46, 8, 8); } } -} + @Override + public String toString() { + String buffer = ""; + buffer += "Тип: обычные, Количество колес: " + _wheelsCount.getEnumNumber() * 2; + return buffer; + } +} \ No newline at end of file diff --git a/ProjectElectroTrans/src/Drawnings/WheelsCount.java b/ProjectElectroTrans/src/Drawnings/WheelsCount.java index 483d4da..2aa3b9f 100644 --- a/ProjectElectroTrans/src/Drawnings/WheelsCount.java +++ b/ProjectElectroTrans/src/Drawnings/WheelsCount.java @@ -12,5 +12,4 @@ public enum WheelsCount { public int getEnumNumber() { return EnumNumber; } - } diff --git a/ProjectElectroTrans/src/Entities/EntityElectroTrans.java b/ProjectElectroTrans/src/Entities/EntityElectroTrans.java index f147ce0..84da558 100644 --- a/ProjectElectroTrans/src/Entities/EntityElectroTrans.java +++ b/ProjectElectroTrans/src/Entities/EntityElectroTrans.java @@ -2,36 +2,11 @@ package Entities; import java.awt.*; -public class EntityElectroTrans extends EntityTrans { - private int Speed; - - public EntityElectroTrans(int speed, double weight, Color bodyColor, Color additionalColor, boolean horns, boolean battery) { - super(speed, weight, bodyColor); - AdditionalColor = additionalColor; - Horns = horns; - Battery = battery; - } - - public int getSpeed() { - return Speed; - } - private double Weight; - public double getWeight() { - return Weight; - } - private Color BodyColor; - public Color getBodyColor() { - return BodyColor; - } +public class EntityElectroTrans extends EntityTrans { private Color AdditionalColor; public Color getAdditionalColor() { return AdditionalColor; } - - - public double Step() { - return Speed*100/Weight; - } private boolean Horns; public boolean getHorns() { return Horns; @@ -40,4 +15,19 @@ public class EntityElectroTrans extends EntityTrans { public boolean getBattery() { return Battery; } + public EntityElectroTrans(int speed, double weight, Color bodyColor ,Color additionalColor, boolean sail, boolean floaters) { + super(speed, weight, bodyColor); + AdditionalColor = additionalColor; + Horns = sail; + Battery = floaters; + } + @Override + public String toString() { + String buffer = super.toString(); + buffer += String.format(", Дополнительный цвет : RGB{%d, %d, %d}", + this.AdditionalColor.getRed(), this.AdditionalColor.getGreen(), this.AdditionalColor.getBlue()); + buffer += ", Рога: " + this.Horns; + buffer += ", Батарея: " + this.Battery; + return buffer; + } } diff --git a/ProjectElectroTrans/src/Entities/EntityTrans.java b/ProjectElectroTrans/src/Entities/EntityTrans.java index 81fdaa1..3ce91ed 100644 --- a/ProjectElectroTrans/src/Entities/EntityTrans.java +++ b/ProjectElectroTrans/src/Entities/EntityTrans.java @@ -4,20 +4,27 @@ import java.awt.*; public class EntityTrans { private int Speed; + public int getSpeed() { return Speed; } + private double Weight; + public double getWeight() { return Weight; } + private Color BodyColor; + public Color getBodyColor() { return BodyColor; } + private double Step; + public double getStep() { - return Speed*100/Weight; + return Speed * 100 / Weight; } public EntityTrans(int speed, double weight, Color bodyColor) { @@ -25,4 +32,14 @@ public class EntityTrans { Weight = weight; BodyColor = bodyColor; } -} \ No newline at end of file + + @Override + public String toString() { + String buffer = ""; + buffer += "Скорость: " + this.Speed; + buffer += ", Вес: " + this.Weight; + buffer += String.format(", Основной цвет : RGB{%d, %d, %d}", + this.BodyColor.getRed(), this.BodyColor.getGreen(), this.BodyColor.getBlue()); + return buffer; + } +} diff --git a/ProjectElectroTrans/src/FormElectroTrans.form b/ProjectElectroTrans/src/FormElectroTrans.form deleted file mode 100644 index c1bb807..0000000 --- a/ProjectElectroTrans/src/FormElectroTrans.form +++ /dev/null @@ -1,131 +0,0 @@ - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
diff --git a/ProjectElectroTrans/src/FormElectroTrans.java b/ProjectElectroTrans/src/FormElectroTrans.java deleted file mode 100644 index 9aa7ae2..0000000 --- a/ProjectElectroTrans/src/FormElectroTrans.java +++ /dev/null @@ -1,183 +0,0 @@ -import Drawnings.DrawningElectroTrans; -import Drawnings.DrawningTrans; -import MovementStrategy.*; - -import javax.swing.*; -import java.awt.*; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.util.LinkedList; -import java.util.Random; -import java.util.List; - -public class FormElectroTrans extends JFrame { - protected DrawningTrans _drawningTrans; - JPanel PanelWrapper; - private JPanel PictureBox; - private JButton buttonCreateElectroTrans; - private JButton buttonCreateTrans; - private JButton buttonRight; - private JButton buttonDown; - private JButton buttonLeft; - private JButton buttonUp; - private JComboBox comboBoxStrategy; - private JButton buttonStrategyStep; - private AbstractStrategy _strategy; - private List controls; - - private void createObject(String type) { - Random random = new Random(); - switch (type) { - case "Drawnings.DrawningTrans": - _drawningTrans = new DrawningTrans(random.nextInt(70 - 30) + 30, random.nextInt(500 - 100) + 100, - new Color(random.nextInt(256), random.nextInt(256), random.nextInt(256)), random.nextInt(3)); - break; - case "Drawnings.DrawningElectroTrans": - _drawningTrans = new DrawningElectroTrans(random.nextInt(70 - 30) + 30, random.nextInt(500 - 100) + 100, - new Color(random.nextInt(256), random.nextInt(256), random.nextInt(256)), random.nextInt(3), - new Color(random.nextInt(256), random.nextInt(256), random.nextInt(256)), - random.nextBoolean(), random.nextBoolean()); - break; - default: - return; - } - _drawningTrans.setPictureSize(PictureBox.getWidth(), PictureBox.getHeight()); - _drawningTrans.setPosition(random.nextInt(25, 100), - random.nextInt(25, 100)); - _strategy = null; - comboBoxStrategy.setEnabled(true); - - - Draw(); - } - - public FormElectroTrans() { - buttonUp.setName("buttonUp"); - buttonDown.setName("buttonDown"); - buttonLeft.setName("buttonLeft"); - buttonRight.setName("buttonRight"); - - InitializeControlsRepaintList(); - - buttonCreateElectroTrans.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - createObject("Drawnings.DrawningElectroTrans"); - - } - }); - buttonCreateTrans.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - createObject("Drawnings.DrawningTrans"); - } - }); - ActionListener buttonMoveClickedListener = new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - String buttonName = ((JButton) e.getSource()).getName(); - boolean result = false; - - switch (buttonName) { - case "buttonUp": { - result = _drawningTrans.moveTransport(MovementDirection.Up); - } - break; - case "buttonDown": { - result = _drawningTrans.moveTransport(MovementDirection.Down); - } - break; - case "buttonLeft": { - result = _drawningTrans.moveTransport(MovementDirection.Left); - } - break; - case "buttonRight": { - result = _drawningTrans.moveTransport(MovementDirection.Right); - } - break; - - } - if (result) - Draw(); - } - }; - buttonRight.addActionListener(buttonMoveClickedListener); - buttonDown.addActionListener(buttonMoveClickedListener); - buttonLeft.addActionListener(buttonMoveClickedListener); - buttonUp.addActionListener(buttonMoveClickedListener); - - comboBoxStrategy.addItem("К центру"); - comboBoxStrategy.addItem("К краю"); - buttonStrategyStep.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - if (_drawningTrans == null) - return; - if (comboBoxStrategy.isEnabled()) { - switch (comboBoxStrategy.getSelectedIndex()) { - case 0: - _strategy = new MoveToCenter(); - break; - case 1: - _strategy = new MoveToBorder(); - break; - - default: - _strategy = null; - break; - - } - if (_strategy == null) { - return; - } - _strategy.SetData(new MoveableTrans(_drawningTrans), PictureBox.getWidth(), PictureBox.getHeight()); - } - if (_strategy == null) { - return; - } - _strategy.MakeStep(); - Draw(); - comboBoxStrategy.setEnabled(false); - - if (_strategy.GetStatus() == StrategyStatus.Finish) { - comboBoxStrategy.setEnabled(true); - _strategy = null; - } - } - }); - - } - private void Draw() { - if (_drawningTrans.getEntityTrans() == null) - return; - if (PictureBox.getWidth() == 0 || PictureBox.getHeight() == 0) { - return; - } - Graphics g = PictureBox.getGraphics(); - g.setColor(PictureBox.getBackground()); - g.fillRect(0,0, PictureBox.getWidth(), PictureBox.getHeight()); - _drawningTrans.drawTrans(g); - - RepaintControls(); - } - private void RepaintControls() { - for (JComponent control : controls) { - control.repaint(); - } - } - - - private void InitializeControlsRepaintList() { - controls = new LinkedList<>(); - controls.add(buttonCreateElectroTrans); - controls.add(buttonCreateTrans); - controls.add(buttonUp); - controls.add(buttonDown); - controls.add(buttonLeft); - controls.add(buttonRight); - controls.add(comboBoxStrategy); - controls.add(buttonStrategyStep); - } - - -} diff --git a/ProjectElectroTrans/src/Forms/FormConstructor.java b/ProjectElectroTrans/src/Forms/FormConstructor.java new file mode 100644 index 0000000..2d688f4 --- /dev/null +++ b/ProjectElectroTrans/src/Forms/FormConstructor.java @@ -0,0 +1,92 @@ +package Forms; + +import Drawnings.DrawningConstructor; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.ComponentAdapter; +import java.awt.event.ComponentEvent; + +public class FormConstructor extends JFrame { + private JFrame jFrameConstructor = new JFrame(); + public JFrame getjFrameConstructor() { + return jFrameConstructor; + } + private JButton addButton = new JButton("Добавить объект"); + public JButton getAddButton() { + return addButton; + } + public JButton reCreateButton = new JButton("Пересоздать"); + private final DrawningConstructor constructor = new DrawningConstructor(); + public DrawningConstructor getConstructor() { + return constructor; + } + JPanel entitiesInfoPanel = new JPanel(); + JLabel firstEntityLabel = new JLabel(); + JLabel secondEntityLabel = new JLabel(); + JLabel thirdEntityLabel = new JLabel(); + + JPanel wheelsInfoPanel = new JPanel(); + JLabel firstPaddlesLabel = new JLabel(); + JLabel secondPaddlesLabel = new JLabel(); + JLabel thirdPaddlesLabel = new JLabel(); + + public void OpenFrame() { + + Toolkit tolls = Toolkit.getDefaultToolkit(); + Dimension dimension = tolls.getScreenSize(); + jFrameConstructor.setBounds(dimension.width / 2 - 250, dimension.height / 2 - 250, + 800, 300); + jFrameConstructor.setLayout(new BorderLayout()); + + firstEntityLabel.setText(constructor.getEntityString(0)); + secondEntityLabel.setText(constructor.getEntityString(1)); + thirdEntityLabel.setText(constructor.getEntityString(2)); + + entitiesInfoPanel.setLayout(new BoxLayout(entitiesInfoPanel, BoxLayout.Y_AXIS)); + entitiesInfoPanel.setBorder(BorderFactory.createTitledBorder("Entities")); + entitiesInfoPanel.setSize(500, 130); + entitiesInfoPanel.setLocation(150, 10); + entitiesInfoPanel.add(firstEntityLabel); + entitiesInfoPanel.add(secondEntityLabel); + entitiesInfoPanel.add(thirdEntityLabel); + + firstPaddlesLabel.setText(constructor.getWheelsString(0)); + secondPaddlesLabel.setText(constructor.getWheelsString(1)); + thirdPaddlesLabel.setText(constructor.getWheelsString(2)); + + + wheelsInfoPanel.setLayout(new BoxLayout(wheelsInfoPanel, BoxLayout.Y_AXIS)); + wheelsInfoPanel.setBorder(BorderFactory.createTitledBorder("Wheels")); + wheelsInfoPanel.setSize(500, 130); + wheelsInfoPanel.setLocation(150, 150); + wheelsInfoPanel.add(firstPaddlesLabel); + wheelsInfoPanel.add(secondPaddlesLabel); + wheelsInfoPanel.add(thirdPaddlesLabel); + + addButton.setBounds(0, jFrameConstructor.getHeight() - 105, 150, 50); + reCreateButton.setBounds(0, jFrameConstructor.getHeight() - 135, 150, 30); + + jFrameConstructor.add(wheelsInfoPanel); + jFrameConstructor.add(entitiesInfoPanel); + jFrameConstructor.add(addButton); + jFrameConstructor.add(reCreateButton); + jFrameConstructor.add(constructor); + jFrameConstructor.revalidate(); + jFrameConstructor.repaint(); + + jFrameConstructor.addComponentListener(new ComponentAdapter() { + public void componentResized(ComponentEvent componentEvent) { + addButton.setLocation(0, jFrameConstructor.getSize().height - 105); + reCreateButton.setLocation(0, jFrameConstructor.getSize().height - 135); + } + }); + reCreateButton.addActionListener(e -> { + constructor.reCreateObj(); + jFrameConstructor.repaint(); + }); + + jFrameConstructor.setVisible(true); + } + +} \ No newline at end of file diff --git a/ProjectElectroTrans/src/Forms/FormElectroTrans.java b/ProjectElectroTrans/src/Forms/FormElectroTrans.java new file mode 100644 index 0000000..8fbf7ba --- /dev/null +++ b/ProjectElectroTrans/src/Forms/FormElectroTrans.java @@ -0,0 +1,113 @@ +package Forms; + +import Drawnings.*; +import MovementStrategy.*; +import javax.swing.*; +import java.awt.*; +import java.awt.event.ComponentAdapter; +import java.awt.event.ComponentEvent; + + +public class FormElectroTrans extends JFrame { + final private JFrame JFrameElectroTrans = new JFrame(); + final private JButton buttonRight = new JButton(new ImageIcon("ProjectElectroTrans\\Resources\\30px_arrow_right.png")); + final private JPanel RightPanel = new JPanel(); + final private JButton buttonDown = new JButton(new ImageIcon("ProjectElectroTrans\\Resources\\30px_arrow_down.png")); + final private JPanel DownPanel = new JPanel(); + final private JButton buttonLeft = new JButton(new ImageIcon("ProjectElectroTrans\\Resources\\30px_arrow_left.png")); + final private JPanel LeftPanel = new JPanel(); + final private JButton buttonUp = new JButton(new ImageIcon("ProjectElectroTrans\\Resources\\30px_arrow_up.png")); + + final private JPanel UpPanel = new JPanel(); + final private String [] itemsComboBox = { + "К центру", + "К краю" + }; + final private JComboBox comboBoxStrategy =new JComboBox<>(itemsComboBox); + final private JButton buttonStrategyStep = new JButton("Шаг"); + final private JPanel StrategyPanel = new JPanel(new BorderLayout()); + + final private DrawningFormCatamaran form = new DrawningFormCatamaran(); + public void setDrawningTrans(DrawningTrans boat) {form.setDrawningTrans(boat);} + public void OpenFrame() { + JFrameElectroTrans.setVisible(true); + Toolkit tolls = Toolkit.getDefaultToolkit(); + Dimension dimension = tolls.getScreenSize(); + JFrameElectroTrans.setBounds(dimension.width / 2 - 250, dimension.height / 2 - 250, + 970, 700); + JFrameElectroTrans.setTitle("Электропоезд"); + + comboBoxStrategy.setPreferredSize(new Dimension(100, 35)); + buttonStrategyStep.setPreferredSize(new Dimension(100, 35)); + StrategyPanel.setSize(100, 70); + StrategyPanel.add(comboBoxStrategy, BorderLayout.NORTH); + StrategyPanel.add(buttonStrategyStep, BorderLayout.SOUTH); + + + UpPanel.setSize(30, 30); + buttonUp.setPreferredSize(new Dimension(30, 30)); + UpPanel.add(buttonUp, BorderLayout.CENTER); + + DownPanel.setSize(30, 30); + buttonDown.setPreferredSize(new Dimension(30, 30)); + DownPanel.add(buttonDown, BorderLayout.CENTER); + + RightPanel.setSize(30, 30); + buttonRight.setPreferredSize(new Dimension(30, 30)); + RightPanel.add(buttonRight, BorderLayout.CENTER); + + LeftPanel.setSize(30, 30); + buttonLeft.setPreferredSize(new Dimension(30, 30)); + LeftPanel.add(buttonLeft, BorderLayout.CENTER); + + JFrameElectroTrans.add(StrategyPanel); + JFrameElectroTrans.add(UpPanel); + JFrameElectroTrans.add(DownPanel); + JFrameElectroTrans.add(RightPanel); + JFrameElectroTrans.add(LeftPanel); + JFrameElectroTrans.add(form); + + JFrameElectroTrans.addComponentListener(new ComponentAdapter() { + public void componentResized(ComponentEvent e) { + StrategyPanel.setLocation(JFrameElectroTrans.getWidth() - 100, 0); + UpPanel.setLocation(JFrameElectroTrans.getWidth() - 80, JFrameElectroTrans.getHeight()-100); + DownPanel.setLocation(JFrameElectroTrans.getWidth() - 80, JFrameElectroTrans.getHeight()-70); + RightPanel.setLocation(JFrameElectroTrans.getWidth() - 45, JFrameElectroTrans.getHeight()-70); + LeftPanel.setLocation(JFrameElectroTrans.getWidth() - 115, JFrameElectroTrans.getHeight()-70); + + form.setPictureSize(JFrameElectroTrans.getWidth(), JFrameElectroTrans.getHeight()); + JFrameElectroTrans.repaint(); + + } + + }); + + buttonUp.addActionListener(e -> { + form.setPictureSize(JFrameElectroTrans.getWidth(), JFrameElectroTrans.getHeight()); + form.MoveButtonsAction(MovementDirection.Up); + JFrameElectroTrans.repaint(); + }); + + buttonDown.addActionListener(e -> { + form.setPictureSize(JFrameElectroTrans.getWidth(), JFrameElectroTrans.getHeight()); + form.MoveButtonsAction(MovementDirection.Down); + JFrameElectroTrans.repaint(); + }); + buttonLeft.addActionListener(e -> { + form.setPictureSize(JFrameElectroTrans.getWidth(), JFrameElectroTrans.getHeight()); + form.MoveButtonsAction(MovementDirection.Left); + JFrameElectroTrans.repaint(); + }); + buttonRight.addActionListener(e -> { + form.setPictureSize(JFrameElectroTrans.getWidth(), JFrameElectroTrans.getHeight()); + form.MoveButtonsAction(MovementDirection.Right); + JFrameElectroTrans.repaint(); + }); + buttonStrategyStep.addActionListener(e -> { + form.setPictureSize(JFrameElectroTrans.getWidth(), JFrameElectroTrans.getHeight()); + form.buttonStrategyStep(comboBoxStrategy); + JFrameElectroTrans.repaint(); + }); + + } +} \ No newline at end of file diff --git a/ProjectElectroTrans/src/Forms/FormTransCollection.java b/ProjectElectroTrans/src/Forms/FormTransCollection.java new file mode 100644 index 0000000..4618e29 --- /dev/null +++ b/ProjectElectroTrans/src/Forms/FormTransCollection.java @@ -0,0 +1,164 @@ +package Forms; + +import Drawnings.DrawningAbstractCompany; + +import javax.swing.*; +import javax.swing.text.NumberFormatter; +import java.awt.*; +import java.awt.event.ComponentAdapter; +import java.awt.event.ComponentEvent; +import java.text.NumberFormat; + +public class FormTransCollection extends JFrame { + final private JFrame jFrameCollectionTranss = new JFrame(); + final private DrawningAbstractCompany _company = new DrawningAbstractCompany(); + final private JButton refreshButton = new JButton("Обновить"); + final private JPanel refreshPanel = new JPanel(); + final private String[] listOfComboBox = { + + "", + "Хранилище" + }; + final private JComboBox comboBoxSelectorCompany = new JComboBox<>(listOfComboBox); + final private JPanel comboBoxPanel = new JPanel(); + final private JPanel toolsPanel = new JPanel(); + final private JLabel toolsNameLabel = new JLabel("Инструменты"); + final private JPanel labelPanel = new JPanel(); + final private JButton buttonAddTrans = new JButton("Добавить поезд"); + final private JButton buttonAddElectroTrans = new JButton("Добавить Электропоезд"); + final private JPanel addTransPanel = new JPanel(); + final private JPanel addElectroTransPanel = new JPanel(); + final private JButton buttonRemove = new JButton("Удалить поезд"); + final private JPanel removePanel = new JPanel(); + final private JButton goToCheckButton = new JButton("Отправит на тесты"); + final private JPanel goToCheckPanel = new JPanel(); + final private JPanel addFromConstructorPanel = new JPanel(); + final private JButton addFromConstructorButton = new JButton("Добавить из констркутора"); + + public void OpenFrame() { + + jFrameCollectionTranss.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + Toolkit tolls = Toolkit.getDefaultToolkit(); + Dimension dimension = tolls.getScreenSize(); + jFrameCollectionTranss.setBounds(dimension.width / 2 - 250, dimension.height / 2 - 250, + 1200, 665); + jFrameCollectionTranss.setTitle("Коллекция поездов"); + + toolsPanel.setBackground(Color.BLACK); + labelPanel.setSize(new Dimension(100, 20)); + labelPanel.add(toolsNameLabel); + + comboBoxPanel.setLayout(new BorderLayout()); + comboBoxPanel.setSize(new Dimension(130, 30)); + comboBoxPanel.add(comboBoxSelectorCompany, BorderLayout.CENTER); + + addTransPanel.setLayout(new BorderLayout()); + addTransPanel.setSize(170, 40); + addTransPanel.add(buttonAddTrans, BorderLayout.CENTER); + + addElectroTransPanel.setLayout(new BorderLayout()); + addElectroTransPanel.setSize(170, 40); + addElectroTransPanel.add(buttonAddElectroTrans, BorderLayout.CENTER); + + removePanel.setLayout(new BorderLayout()); + removePanel.setSize(170, 40); + removePanel.add(buttonRemove, BorderLayout.CENTER); + + goToCheckPanel.setLayout(new BorderLayout()); + goToCheckPanel.setSize(170, 40); + goToCheckPanel.add(goToCheckButton, BorderLayout.CENTER); + + refreshPanel.setLayout(new BorderLayout()); + refreshPanel.setSize(170, 40); + refreshPanel.add(refreshButton, BorderLayout.CENTER); + + addFromConstructorPanel.setLayout(new BorderLayout()); + addFromConstructorPanel.setSize(170, 40); + addFromConstructorPanel.add(addFromConstructorButton, BorderLayout.CENTER); + + NumberFormat format = NumberFormat.getInstance(); + NumberFormatter formatter = new NumberFormatter(format); + formatter.setValueClass(Integer.class); + formatter.setMinimum(0); + formatter.setMaximum(100); + formatter.setAllowsInvalid(true); + formatter.setCommitsOnValidEdit(true); + + JTextField textBoxPosition = new JFormattedTextField(formatter); + JPanel textBoxPanel = new JPanel(); + textBoxPanel.setLayout(new BorderLayout()); + textBoxPanel.setSize(170, 40); + textBoxPanel.add(textBoxPosition, BorderLayout.CENTER); + + jFrameCollectionTranss.add(toolsPanel); + jFrameCollectionTranss.add(labelPanel); + jFrameCollectionTranss.add(comboBoxPanel); + jFrameCollectionTranss.add(addTransPanel); + jFrameCollectionTranss.add(addElectroTransPanel); + jFrameCollectionTranss.add(textBoxPanel); + jFrameCollectionTranss.add(removePanel); + jFrameCollectionTranss.add(goToCheckPanel); + jFrameCollectionTranss.add(refreshPanel); + jFrameCollectionTranss.add(addFromConstructorPanel); + jFrameCollectionTranss.add(_company); + + jFrameCollectionTranss.addComponentListener(new ComponentAdapter() { + public void componentResized(ComponentEvent componentEvent) { + labelPanel.setLocation(jFrameCollectionTranss.getWidth() - 210, 0); + toolsPanel.setLocation(jFrameCollectionTranss.getWidth() - 233, 0); + comboBoxPanel.setLocation(jFrameCollectionTranss.getWidth() - 200, 30); + addTransPanel.setLocation(jFrameCollectionTranss.getWidth() - 200, 70); + addElectroTransPanel.setLocation(jFrameCollectionTranss.getWidth() - 200, 120); + textBoxPanel.setLocation(jFrameCollectionTranss.getWidth() - 200, 220); + removePanel.setLocation(jFrameCollectionTranss.getWidth() - 200, 260); + goToCheckPanel.setLocation(jFrameCollectionTranss.getWidth() - 200, 300); + refreshPanel.setLocation(jFrameCollectionTranss.getWidth() - 200, 340); + addFromConstructorPanel.setLocation(jFrameCollectionTranss.getWidth() - 200, 170); + toolsPanel.setSize(new Dimension(10, jFrameCollectionTranss.getHeight())); + + jFrameCollectionTranss.repaint(); + } + }); + + comboBoxSelectorCompany.addActionListener(e -> { + + _company.collectionComboBox_SelectedIndexChanged(comboBoxSelectorCompany, + jFrameCollectionTranss.getWidth() - 233, jFrameCollectionTranss.getHeight()); + jFrameCollectionTranss.repaint(); + + }); + buttonAddTrans.addActionListener(e -> { + _company.createObject(0, jFrameCollectionTranss); + jFrameCollectionTranss.repaint(); + }); + buttonAddElectroTrans.addActionListener(e -> { + _company.createObject(1, jFrameCollectionTranss); + jFrameCollectionTranss.repaint(); + }); + + buttonRemove.addActionListener(e -> { + if (!textBoxPosition.getText().isEmpty()) { + if (Integer.parseInt(textBoxPosition.getText()) <= 99 + && Integer.parseInt(textBoxPosition.getText()) >= 0) { + int pos = Integer.parseInt(textBoxPosition.getText()); + _company.deleteButtonAction(pos, jFrameCollectionTranss); + } + } + jFrameCollectionTranss.repaint(); + + }); + refreshButton.addActionListener(e -> { + jFrameCollectionTranss.repaint(); + }); + goToCheckButton.addActionListener(e -> { + _company.goToCheckButtonAction(); + jFrameCollectionTranss.repaint(); + }); + addFromConstructorButton.addActionListener(e -> { + _company.getObjFromConstructor(jFrameCollectionTranss); + }); + jFrameCollectionTranss.setVisible(true); + + } + +} diff --git a/ProjectElectroTrans/src/Main.java b/ProjectElectroTrans/src/Main.java index 41dd2d5..8cc26d8 100644 --- a/ProjectElectroTrans/src/Main.java +++ b/ProjectElectroTrans/src/Main.java @@ -1,19 +1,7 @@ -import javax.swing.*; - -//TIP To Run code, press or -// click the icon in the gutter. +import Forms.FormTransCollection; public class Main { public static void main(String[] args) { - JFrame.setDefaultLookAndFeelDecorated(false); - JFrame frame = new JFrame("Элетроаоезд"); - frame.setContentPane(new FormElectroTrans().PanelWrapper); - frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - frame.setLocation(500, 200); - frame.pack(); - frame.setSize(700, 500); - frame.setVisible(true); - //TIP Press with your caret at the highlighted text - // to see how IntelliJ IDEA suggests fixing it. - + FormTransCollection formTransCollection = new FormTransCollection(); + formTransCollection.OpenFrame(); } } \ No newline at end of file diff --git a/ProjectElectroTrans/src/MovementStrategy/AbstractStrategy.java b/ProjectElectroTrans/src/MovementStrategy/AbstractStrategy.java index d5bb319..af251fa 100644 --- a/ProjectElectroTrans/src/MovementStrategy/AbstractStrategy.java +++ b/ProjectElectroTrans/src/MovementStrategy/AbstractStrategy.java @@ -38,6 +38,7 @@ public abstract class AbstractStrategy { protected boolean MoveRight() { return MoveTo(MovementDirection.Right); } protected boolean MoveUp() { return MoveTo(MovementDirection.Up); } protected boolean MoveDown() { return MoveTo(MovementDirection.Down); } + protected ObjectParameters GetObjectParameters() { return _moveableObject.GetObjectPosition(); } protected int GetStep() @@ -49,7 +50,9 @@ public abstract class AbstractStrategy { return _moveableObject.GetStep(); } protected abstract void MoveToTarget(); + protected abstract boolean IsTargetDestination(); + private boolean MoveTo(MovementDirection directionType) { if (_state != StrategyStatus.InProgress) diff --git a/ProjectElectroTrans/src/MovementStrategy/MoveToBorder.java b/ProjectElectroTrans/src/MovementStrategy/MoveToBorder.java index 6c44e9f..5dd7839 100644 --- a/ProjectElectroTrans/src/MovementStrategy/MoveToBorder.java +++ b/ProjectElectroTrans/src/MovementStrategy/MoveToBorder.java @@ -1,18 +1,17 @@ package MovementStrategy; public class MoveToBorder extends AbstractStrategy { + @Override protected boolean IsTargetDestination() { var objParams = GetObjectParameters(); if (objParams == null) { return false; } - return objParams.RightBorder() <= FieldWidth && - objParams.RightBorder() + GetStep() >= FieldWidth && - objParams.DownBorder() <= FieldHeight && + return objParams.RightBorder() + GetStep() >= FieldWidth && objParams.DownBorder() + GetStep() >= FieldHeight; } - + @Override protected void MoveToTarget() { var objParams = GetObjectParameters(); diff --git a/ProjectElectroTrans/src/MovementStrategy/MoveToCenter.java b/ProjectElectroTrans/src/MovementStrategy/MoveToCenter.java index f96269b..84a9fb2 100644 --- a/ProjectElectroTrans/src/MovementStrategy/MoveToCenter.java +++ b/ProjectElectroTrans/src/MovementStrategy/MoveToCenter.java @@ -1,6 +1,7 @@ package MovementStrategy; public class MoveToCenter extends AbstractStrategy { + @Override protected boolean IsTargetDestination() { var objParams = GetObjectParameters(); @@ -12,6 +13,7 @@ public class MoveToCenter extends AbstractStrategy { objParams.ObjectMiddleVertical() - GetStep() <= FieldHeight / 2 && objParams.ObjectMiddleVertical() + GetStep() >= FieldHeight / 2); } + @Override protected void MoveToTarget() { @@ -43,4 +45,4 @@ public class MoveToCenter extends AbstractStrategy { } } } -} +} \ No newline at end of file diff --git a/ProjectElectroTrans/src/MovementStrategy/MoveableTrans.java b/ProjectElectroTrans/src/MovementStrategy/MoveableTrans.java index 054ffa5..9577937 100644 --- a/ProjectElectroTrans/src/MovementStrategy/MoveableTrans.java +++ b/ProjectElectroTrans/src/MovementStrategy/MoveableTrans.java @@ -1,6 +1,5 @@ package MovementStrategy; - -import Drawnings.DrawningTrans; +import Drawnings.*; public class MoveableTrans implements IMoveableObject { private DrawningTrans _trans = null; @@ -11,14 +10,14 @@ public class MoveableTrans implements IMoveableObject { public ObjectParameters GetObjectPosition() { - if (_trans == null || _trans.getEntityTrans() == null) + if (_trans == null || _trans.getEntityTran() == null) { return null; } return new ObjectParameters(_trans.GetPosX(), _trans.GetPosY(), _trans.GetWidth(), _trans.GetHeight()); } - public int GetStep() { return (int) _trans.getEntityTrans().getStep(); } + public int GetStep() { return (int) _trans.getEntityTran().getStep(); } public boolean TryMoveObject(MovementDirection direction) { return _trans.moveTransport(direction); } public void MoveObject(MovementDirection direction) { _trans.moveTransport(direction); } } diff --git a/ProjectElectroTrans/src/MovementStrategy/ObjectParameters.java b/ProjectElectroTrans/src/MovementStrategy/ObjectParameters.java index a741f5a..9260415 100644 --- a/ProjectElectroTrans/src/MovementStrategy/ObjectParameters.java +++ b/ProjectElectroTrans/src/MovementStrategy/ObjectParameters.java @@ -11,7 +11,6 @@ public class ObjectParameters { public int RightBorder() { return _x + _width; } public int DownBorder() { return _y + _height; } - public int ObjectMiddleHorizontal () { return _x + _width / 2; } public int ObjectMiddleVertical () { return _y + _height / 2; } diff --git a/out/production/ProjectElectroTrans/CollectionGenericObjects/AbstractCompany.class b/out/production/ProjectElectroTrans/CollectionGenericObjects/AbstractCompany.class new file mode 100644 index 0000000..6c6fd33 Binary files /dev/null and b/out/production/ProjectElectroTrans/CollectionGenericObjects/AbstractCompany.class differ diff --git a/out/production/ProjectElectroTrans/CollectionGenericObjects/Constructor.class b/out/production/ProjectElectroTrans/CollectionGenericObjects/Constructor.class new file mode 100644 index 0000000..8914e2e Binary files /dev/null and b/out/production/ProjectElectroTrans/CollectionGenericObjects/Constructor.class differ diff --git a/out/production/ProjectElectroTrans/CollectionGenericObjects/ICollectionGenericObjects.class b/out/production/ProjectElectroTrans/CollectionGenericObjects/ICollectionGenericObjects.class new file mode 100644 index 0000000..7acc95a Binary files /dev/null and b/out/production/ProjectElectroTrans/CollectionGenericObjects/ICollectionGenericObjects.class differ diff --git a/out/production/ProjectElectroTrans/CollectionGenericObjects/MassiveGenericObjects.class b/out/production/ProjectElectroTrans/CollectionGenericObjects/MassiveGenericObjects.class new file mode 100644 index 0000000..df9695f Binary files /dev/null and b/out/production/ProjectElectroTrans/CollectionGenericObjects/MassiveGenericObjects.class differ diff --git a/out/production/ProjectElectroTrans/CollectionGenericObjects/TransSharingService.class b/out/production/ProjectElectroTrans/CollectionGenericObjects/TransSharingService.class new file mode 100644 index 0000000..ec1cd8f Binary files /dev/null and b/out/production/ProjectElectroTrans/CollectionGenericObjects/TransSharingService.class differ diff --git a/out/production/ProjectElectroTrans/Drawnings/DrawningAbstractCompany.class b/out/production/ProjectElectroTrans/Drawnings/DrawningAbstractCompany.class new file mode 100644 index 0000000..f1229e9 Binary files /dev/null and b/out/production/ProjectElectroTrans/Drawnings/DrawningAbstractCompany.class differ diff --git a/out/production/ProjectElectroTrans/Drawnings/DrawningConstructor.class b/out/production/ProjectElectroTrans/Drawnings/DrawningConstructor.class new file mode 100644 index 0000000..c610ca0 Binary files /dev/null and b/out/production/ProjectElectroTrans/Drawnings/DrawningConstructor.class differ diff --git a/out/production/ProjectElectroTrans/Drawnings/DrawningElectroTrans.class b/out/production/ProjectElectroTrans/Drawnings/DrawningElectroTrans.class new file mode 100644 index 0000000..63b4499 Binary files /dev/null and b/out/production/ProjectElectroTrans/Drawnings/DrawningElectroTrans.class differ diff --git a/out/production/ProjectElectroTrans/Drawnings/DrawningFormCatamaran.class b/out/production/ProjectElectroTrans/Drawnings/DrawningFormCatamaran.class new file mode 100644 index 0000000..6269c7f Binary files /dev/null and b/out/production/ProjectElectroTrans/Drawnings/DrawningFormCatamaran.class differ diff --git a/out/production/ProjectElectroTrans/Drawnings/DrawningRectWheels.class b/out/production/ProjectElectroTrans/Drawnings/DrawningRectWheels.class new file mode 100644 index 0000000..d99072e Binary files /dev/null and b/out/production/ProjectElectroTrans/Drawnings/DrawningRectWheels.class differ diff --git a/out/production/ProjectElectroTrans/Drawnings/DrawningRectangleWheels.class b/out/production/ProjectElectroTrans/Drawnings/DrawningRectangleWheels.class new file mode 100644 index 0000000..c99b89f Binary files /dev/null and b/out/production/ProjectElectroTrans/Drawnings/DrawningRectangleWheels.class differ diff --git a/out/production/ProjectElectroTrans/Drawnings/DrawningTrans$1.class b/out/production/ProjectElectroTrans/Drawnings/DrawningTrans$1.class new file mode 100644 index 0000000..d32f276 Binary files /dev/null and b/out/production/ProjectElectroTrans/Drawnings/DrawningTrans$1.class differ diff --git a/out/production/ProjectElectroTrans/Drawnings/DrawningTrans.class b/out/production/ProjectElectroTrans/Drawnings/DrawningTrans.class new file mode 100644 index 0000000..b1cd67f Binary files /dev/null and b/out/production/ProjectElectroTrans/Drawnings/DrawningTrans.class differ diff --git a/out/production/ProjectElectroTrans/Drawnings/DrawningWheels.class b/out/production/ProjectElectroTrans/Drawnings/DrawningWheels.class new file mode 100644 index 0000000..91ec1cc Binary files /dev/null and b/out/production/ProjectElectroTrans/Drawnings/DrawningWheels.class differ diff --git a/out/production/ProjectElectroTrans/Drawnings/IDrawWheels.class b/out/production/ProjectElectroTrans/Drawnings/IDrawWheels.class new file mode 100644 index 0000000..80d649d Binary files /dev/null and b/out/production/ProjectElectroTrans/Drawnings/IDrawWheels.class differ diff --git a/out/production/ProjectElectroTrans/Drawnings/WheelsCount.class b/out/production/ProjectElectroTrans/Drawnings/WheelsCount.class new file mode 100644 index 0000000..e88ad8e Binary files /dev/null and b/out/production/ProjectElectroTrans/Drawnings/WheelsCount.class differ diff --git a/out/production/ProjectElectroTrans/Entities/EntityElectroTrans.class b/out/production/ProjectElectroTrans/Entities/EntityElectroTrans.class new file mode 100644 index 0000000..4102a73 Binary files /dev/null and b/out/production/ProjectElectroTrans/Entities/EntityElectroTrans.class differ diff --git a/out/production/ProjectElectroTrans/Entities/EntityTrans.class b/out/production/ProjectElectroTrans/Entities/EntityTrans.class new file mode 100644 index 0000000..b6e3240 Binary files /dev/null and b/out/production/ProjectElectroTrans/Entities/EntityTrans.class differ diff --git a/out/production/ProjectElectroTrans/Forms/FormConstructor$1.class b/out/production/ProjectElectroTrans/Forms/FormConstructor$1.class new file mode 100644 index 0000000..cdc069a Binary files /dev/null and b/out/production/ProjectElectroTrans/Forms/FormConstructor$1.class differ diff --git a/out/production/ProjectElectroTrans/Forms/FormConstructor.class b/out/production/ProjectElectroTrans/Forms/FormConstructor.class new file mode 100644 index 0000000..57eae2a Binary files /dev/null and b/out/production/ProjectElectroTrans/Forms/FormConstructor.class differ diff --git a/out/production/ProjectElectroTrans/Forms/FormElectroTrans$1.class b/out/production/ProjectElectroTrans/Forms/FormElectroTrans$1.class new file mode 100644 index 0000000..f332303 Binary files /dev/null and b/out/production/ProjectElectroTrans/Forms/FormElectroTrans$1.class differ diff --git a/out/production/ProjectElectroTrans/Forms/FormElectroTrans.class b/out/production/ProjectElectroTrans/Forms/FormElectroTrans.class new file mode 100644 index 0000000..fbdb89b Binary files /dev/null and b/out/production/ProjectElectroTrans/Forms/FormElectroTrans.class differ diff --git a/out/production/ProjectElectroTrans/Forms/FormTransCollection$1.class b/out/production/ProjectElectroTrans/Forms/FormTransCollection$1.class new file mode 100644 index 0000000..8e0a371 Binary files /dev/null and b/out/production/ProjectElectroTrans/Forms/FormTransCollection$1.class differ diff --git a/out/production/ProjectElectroTrans/Forms/FormTransCollection.class b/out/production/ProjectElectroTrans/Forms/FormTransCollection.class new file mode 100644 index 0000000..8e119cb Binary files /dev/null and b/out/production/ProjectElectroTrans/Forms/FormTransCollection.class differ diff --git a/out/production/ProjectElectroTrans/Main.class b/out/production/ProjectElectroTrans/Main.class new file mode 100644 index 0000000..31bc5c2 Binary files /dev/null and b/out/production/ProjectElectroTrans/Main.class differ diff --git a/out/production/ProjectElectroTrans/MovementStrategy/AbstractStrategy.class b/out/production/ProjectElectroTrans/MovementStrategy/AbstractStrategy.class new file mode 100644 index 0000000..52e9e7e Binary files /dev/null and b/out/production/ProjectElectroTrans/MovementStrategy/AbstractStrategy.class differ diff --git a/out/production/ProjectElectroTrans/MovementStrategy/IMoveableObject.class b/out/production/ProjectElectroTrans/MovementStrategy/IMoveableObject.class new file mode 100644 index 0000000..7562433 Binary files /dev/null and b/out/production/ProjectElectroTrans/MovementStrategy/IMoveableObject.class differ diff --git a/out/production/ProjectElectroTrans/MovementStrategy/MoveToBorder.class b/out/production/ProjectElectroTrans/MovementStrategy/MoveToBorder.class new file mode 100644 index 0000000..ec503b3 Binary files /dev/null and b/out/production/ProjectElectroTrans/MovementStrategy/MoveToBorder.class differ diff --git a/out/production/ProjectElectroTrans/MovementStrategy/MoveToCenter.class b/out/production/ProjectElectroTrans/MovementStrategy/MoveToCenter.class new file mode 100644 index 0000000..568bae3 Binary files /dev/null and b/out/production/ProjectElectroTrans/MovementStrategy/MoveToCenter.class differ diff --git a/out/production/ProjectElectroTrans/MovementStrategy/MoveableTrans.class b/out/production/ProjectElectroTrans/MovementStrategy/MoveableTrans.class new file mode 100644 index 0000000..0078063 Binary files /dev/null and b/out/production/ProjectElectroTrans/MovementStrategy/MoveableTrans.class differ diff --git a/out/production/ProjectElectroTrans/MovementStrategy/MovementDirection.class b/out/production/ProjectElectroTrans/MovementStrategy/MovementDirection.class new file mode 100644 index 0000000..5b5f329 Binary files /dev/null and b/out/production/ProjectElectroTrans/MovementStrategy/MovementDirection.class differ diff --git a/out/production/ProjectElectroTrans/MovementStrategy/ObjectParameters.class b/out/production/ProjectElectroTrans/MovementStrategy/ObjectParameters.class new file mode 100644 index 0000000..e120092 Binary files /dev/null and b/out/production/ProjectElectroTrans/MovementStrategy/ObjectParameters.class differ diff --git a/out/production/ProjectElectroTrans/MovementStrategy/StrategyStatus.class b/out/production/ProjectElectroTrans/MovementStrategy/StrategyStatus.class new file mode 100644 index 0000000..bd08a97 Binary files /dev/null and b/out/production/ProjectElectroTrans/MovementStrategy/StrategyStatus.class differ diff --git a/out/production/ProjectElectroTrans/arrowDown.png b/out/production/ProjectElectroTrans/arrowDown.png new file mode 100644 index 0000000..2d51306 Binary files /dev/null and b/out/production/ProjectElectroTrans/arrowDown.png differ diff --git a/out/production/ProjectElectroTrans/arrowLeft.png b/out/production/ProjectElectroTrans/arrowLeft.png new file mode 100644 index 0000000..2c406e8 Binary files /dev/null and b/out/production/ProjectElectroTrans/arrowLeft.png differ diff --git a/out/production/ProjectElectroTrans/arrowRight.png b/out/production/ProjectElectroTrans/arrowRight.png new file mode 100644 index 0000000..36ad5e5 Binary files /dev/null and b/out/production/ProjectElectroTrans/arrowRight.png differ diff --git a/out/production/ProjectElectroTrans/arrowUp.png b/out/production/ProjectElectroTrans/arrowUp.png new file mode 100644 index 0000000..e3a0383 Binary files /dev/null and b/out/production/ProjectElectroTrans/arrowUp.png differ