From c2fee6a8f0283038a5778672407626f495f8513e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=98=D0=BB=D1=8C=D1=8F?= <Илья@WIN-RANNDDD> Date: Mon, 9 Oct 2023 12:19:31 +0400 Subject: [PATCH 1/6] =?UTF-8?q?=D0=93=D0=BE=D1=82=D0=BE=D0=B2=D0=B0=D1=8F?= =?UTF-8?q?=201=20=D0=BB=D0=B0=D0=B1=D0=BE=D1=80=D0=B0=D1=82=D0=BE=D1=80?= =?UTF-8?q?=D0=BD=D0=B0=D1=8F=20(=D0=A3=D1=81=D0=BB=D0=BE=D0=B6=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=D0=BD=D0=B0=D1=8F)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/ProjectMonorailComplicated.iml | 1 + Resources/arrowDown.png | Bin 0 -> 415 bytes Resources/arrowLeft.png | Bin 0 -> 411 bytes Resources/arrowRight.png | Bin 0 -> 352 bytes Resources/arrowUp.png | Bin 0 -> 412 bytes src/Main.java | 6 - src/project/monorail/DirectionType.java | 10 + src/project/monorail/DrawingMonorail.java | 234 ++++++++++++++++++++++ src/project/monorail/DrawingWheels.java | 95 +++++++++ src/project/monorail/EntityMonorail.java | 80 ++++++++ src/project/monorail/FrameMonorail.java | 20 ++ src/project/monorail/Main.java | 8 + src/project/monorail/PictureBox.java | 170 ++++++++++++++++ src/project/monorail/WheelNumber.java | 8 + 14 files changed, 626 insertions(+), 6 deletions(-) create mode 100644 Resources/arrowDown.png create mode 100644 Resources/arrowLeft.png create mode 100644 Resources/arrowRight.png create mode 100644 Resources/arrowUp.png delete mode 100644 src/Main.java create mode 100644 src/project/monorail/DirectionType.java create mode 100644 src/project/monorail/DrawingMonorail.java create mode 100644 src/project/monorail/DrawingWheels.java create mode 100644 src/project/monorail/EntityMonorail.java create mode 100644 src/project/monorail/FrameMonorail.java create mode 100644 src/project/monorail/Main.java create mode 100644 src/project/monorail/PictureBox.java create mode 100644 src/project/monorail/WheelNumber.java diff --git a/.idea/ProjectMonorailComplicated.iml b/.idea/ProjectMonorailComplicated.iml index c90834f..d5b343a 100644 --- a/.idea/ProjectMonorailComplicated.iml +++ b/.idea/ProjectMonorailComplicated.iml @@ -3,6 +3,7 @@ + diff --git a/Resources/arrowDown.png b/Resources/arrowDown.png new file mode 100644 index 0000000000000000000000000000000000000000..16b4f593bd26b5eb84407bebcbe55c1aaeec95a0 GIT binary patch literal 415 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEX7WqAsj$Z!;#Vf&U>cv7h@-A}f&3S>O>_%)r334ulzV-xx^&1tm*dBT9nv(@M${i&7cN z%ggmL^RkPR6AM!H@{7`Ezq0`;`tRxD7~P?^!8c@i=zDlvj@=Qp#I- zKKktQyqXyApweg@bKqasE;$9;OS3OTZjo@+ywU8mBTf|o5ezd4OFR`tb;8emW`c)I$ztaD0e0szRs Bqig^G literal 0 HcmV?d00001 diff --git a/Resources/arrowLeft.png b/Resources/arrowLeft.png new file mode 100644 index 0000000000000000000000000000000000000000..8fb9ab154ebc71fdb6fe5827fe9cd93fd6f3b455 GIT binary patch literal 411 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEX7WqAsj$Z!;#Vf&U>cv7h@-A}f&3S>O>_%)r334ulzV-xx^&1tm*dBT9nv(@M${i&7cN z%ggmL^RkPR6AM!H@{7`Ezq0`;`t9lB7~&rg;N)66!cl!Tf@yl$FB%hT?Z!{*#0@&7EQ3WTV}3dQloNRV0V+f?H~Kd zhiOc~9#ucjZTLRR?IGv1M&;HojoW?JHQ6py{5`8ntix&pv*p3_`cWy?0Z-PxICw|5 xqVje2x0duN69jK09JMtMtThS_{>Is1x2xg6`(~pwj>V literal 0 HcmV?d00001 diff --git a/Resources/arrowRight.png b/Resources/arrowRight.png new file mode 100644 index 0000000000000000000000000000000000000000..95eccc3243ce2d86be760d409611518b9274f59b GIT binary patch literal 352 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEX7WqAsj$Z!;#Vf4nJ zFs%b&#@shXQb0k;64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhK#J~qx;Tb- zbiTc6=;iDv!1f^jlBNgOLAB6ZCS`Go?g4AwDz}u#9k{1`gLB)x1Gl^sTPql?Otk@VR9OF8{Ihr5e;7XtEq}WvK2HzmQ3g*}KbLh*2~7YbW`~Oa literal 0 HcmV?d00001 diff --git a/Resources/arrowUp.png b/Resources/arrowUp.png new file mode 100644 index 0000000000000000000000000000000000000000..8771ae3cef6a025275442a791b4151a061771e42 GIT binary patch literal 412 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEX7WqAsj$Z!;#Vf&U>cv7h@-A}f&3S>O>_%)r334ulzV-xx^&1tm*dBT9nv(@M${i&7cN z%ggmL^RkPR6AM!H@{7`Ezq0`;`s3;17~4Qjyq1^c($R1?R8?t z#nveaY@d|G0uuM?MU^PlT1QB4h!fY%@{pcawqo_+a~WG^IL#{9c6f&NmK!%kbh(yr zX pictureWidth) { x = 0; } + if (y < 0 || y + monorailHeight > pictureHeight) { y = 0; } + + startPosX = x; + startPosY = y; + } + + public void MoveTransport(DirectionType direction) { + if (entityMonorail == null) { + return; + } + + switch (direction) { + //влево + case Left: + if (startPosX - entityMonorail.getStep() > 0) + { + startPosX -= (int)entityMonorail.getStep(); + } + break; + //вверх + case Up: + if (startPosY - entityMonorail.getStep() > 0) + { + startPosY -= (int)entityMonorail.getStep(); + } + break; + //вправо + case Right: + if (startPosX + monorailWidth + entityMonorail.getStep() < pictureWidth) + { + startPosX += (int)entityMonorail.getStep(); + } + break; + //вниз + case Down: + if (startPosY + monorailHeight + entityMonorail.getStep() < pictureHeight) + { + startPosY += (int)entityMonorail.getStep(); + } + break; + } + } + + public void DrawTransport(Graphics2D g2d) + { + if (entityMonorail == null) { + return; + } + + Color mainColor = entityMonorail.getMainColor(); + Color additionalColor = entityMonorail.getAdditionalColor(); + BasicStroke standardWidth = new BasicStroke(1); + BasicStroke largerWidth = new BasicStroke(2); + + //надстройка + g2d.setStroke(largerWidth); + g2d.setColor(mainColor); + g2d.fillRect( startPosX + 55, startPosY , 25, 15); + + g2d.setColor(Color.BLACK); + g2d.drawRect(startPosX + 55, startPosY , 25, 15); + + //корпус локомотива + Polygon locoPolygon = new Polygon(); + locoPolygon.addPoint(startPosX + 29, startPosY + 15); + locoPolygon.addPoint(startPosX + 112, startPosY + 15); + locoPolygon.addPoint(startPosX + 112, startPosY + 46); + locoPolygon.addPoint(startPosX + 25, startPosY + 46); + locoPolygon.addPoint(startPosX + 25, startPosY + 31); + + g2d.setColor(mainColor); + g2d.fillPolygon(locoPolygon); + + g2d.setColor(Color.BLACK); + g2d.drawPolygon(locoPolygon); + + g2d.setStroke(standardWidth); + g2d.setColor(Color.BLUE); + g2d.drawLine( startPosX + 25, startPosY + 31, startPosX + 112, startPosY + 31); + + //дверь локомотива + g2d.setColor(Color.GRAY); + g2d.fillRect( startPosX + 54, startPosY + 21, 7, 20); + + g2d.setStroke(largerWidth); + g2d.setColor(Color.BLACK); + g2d.drawRect(startPosX + 54, startPosY + 21, 7, 20); + + //окна локомотива + g2d.setColor(Color.BLUE); + + g2d.fillRect( startPosX + 32, startPosY + 18, 6, 9); + g2d.fillRect( startPosX + 44, startPosY + 18, 6, 9); + g2d.fillRect( startPosX + 103, startPosY + 18, 6, 9); + + g2d.setColor(Color.BLACK); + + g2d.drawRect( startPosX + 32, startPosY + 18, 6, 9); + g2d.drawRect( startPosX + 44, startPosY + 18, 6, 9); + g2d.drawRect( startPosX + 103, startPosY + 18, 6, 9); + + //колеса и тележка локомотива + g2d.fillRect( startPosX + 23, startPosY + 47, 33, 6); + g2d.fillRect( startPosX + 76, startPosY + 47, 30, 6); + g2d.drawRect( startPosX + 23, startPosY + 47, 33, 6); + g2d.drawRect( startPosX + 76, startPosY + 47, 30, 6); + + drawingWheels.drawWheels(g2d, Color.WHITE, startPosX, startPosY); + + Polygon bogiePolygon = new Polygon(); + bogiePolygon.addPoint(startPosX + 26, startPosY + 46); + bogiePolygon.addPoint(startPosX + 24, startPosY + 54); + bogiePolygon.addPoint(startPosX + 12, startPosY + 54); + bogiePolygon.addPoint(startPosX + 8, startPosY + 51); + bogiePolygon.addPoint(startPosX + 12, startPosY + 48); + bogiePolygon.addPoint(startPosX + 18, startPosY + 46); + + g2d.fillPolygon(bogiePolygon); + + //соединение между кабинами + g2d.drawRect( startPosX + 112, startPosY + 18, 5, 28); + g2d.fillRect( startPosX + 112, startPosY + 18, 5, 28); + + //магнитная рельса + if (entityMonorail.getMagneticRail()) { + g2d.drawRect( startPosX + 2, startPosY + 58, 184, 18); + g2d.setColor(Color.GRAY); + g2d.fillRect( startPosX + 2, startPosY + 58, 184, 18); + for (int i = 0; i < 4; i++) + { + g2d.setColor(Color.BLACK); + g2d.drawRect( startPosX + 35 + 35 * i, startPosY + 77, 8, 15); + g2d.setColor(Color.GRAY); + g2d.fillRect( startPosX + 35 + 35 * i, startPosY + 77, 8, 15); + } + } + + //дополнительная кабина + if (entityMonorail.getExtraCabin()) { + //корпус дополнительной кабины + g2d.setColor(mainColor); + g2d.fillRect( startPosX + 118, startPosY + 15, 65, 31); + g2d.setColor(Color.BLACK); + g2d.drawRect( startPosX + 118, startPosY + 15, 65, 31); + + g2d.setStroke(standardWidth); + g2d.setColor(Color.BLUE); + g2d.drawLine( startPosX + 118, startPosY + 31, startPosX + 183, startPosY + 31); + + //дверь дополнительной кабины + g2d.setColor(additionalColor); + g2d.fillRect( startPosX + 146, startPosY + 21, 7, 20); + + g2d.setStroke(largerWidth); + g2d.setColor(Color.BLACK); + g2d.drawRect(startPosX + 146, startPosY + 21, 7, 20); + + //окна дополнительной кабины + g2d.setColor(Color.BLUE); + g2d.fillRect( startPosX + 130, startPosY + 18, 6, 9); + g2d.fillRect( startPosX + 169, startPosY + 18, 6, 9); + + g2d.setColor(Color.BLACK); + g2d.drawRect( startPosX + 130, startPosY + 18, 6, 9); + g2d.drawRect( startPosX + 169, startPosY + 18, 6, 9); + + //колеса и тележка дополнительной кабины + g2d.fillRect( startPosX + 126, startPosY + 47, 15, 6); + g2d.fillRect( startPosX + 159, startPosY + 47, 15, 6); + g2d.drawRect( startPosX + 126, startPosY + 47, 15, 6); + g2d.drawRect( startPosX + 159, startPosY + 47, 15, 6); + + g2d.setColor(Color.WHITE); + g2d.fillOval( startPosX + 128, startPosY + 47, 10, 9); + g2d.fillOval( startPosX + 161, startPosY + 47, 10, 9); + + g2d.setColor(Color.BLACK); + g2d.drawOval( startPosX + 128, startPosY + 47, 10, 9); + g2d.drawOval( startPosX + 161, startPosY + 47, 10, 9); + } + } +} diff --git a/src/project/monorail/DrawingWheels.java b/src/project/monorail/DrawingWheels.java new file mode 100644 index 0000000..05c6d61 --- /dev/null +++ b/src/project/monorail/DrawingWheels.java @@ -0,0 +1,95 @@ +package project.monorail; + +import java.awt.*; + +public class DrawingWheels { + private WheelNumber wheelNumber; + public void setWheelNumber(int number) { + switch (number) { + case 2: + wheelNumber = wheelNumber.Two; + break; + case 3: + wheelNumber = wheelNumber.Three; + break; + case 4: + wheelNumber = wheelNumber.Four; + break; + default: wheelNumber = wheelNumber.Two; + } + } + + public void drawWheels(Graphics2D g2d, Color color, int startPosX, int startPosY) { + switch (wheelNumber) { + case Two: + drawTwoWheels(g2d, color, startPosX, startPosY); + break; + case Three: + drawThreeWheels(g2d, color, startPosX, startPosY); + break; + case Four: + drawFourWheels(g2d, color, startPosX, startPosY); + break; + } + } + + private void drawTwoWheels(Graphics2D g2d, Color color, int startPosX, int startPosY) { + g2d.setColor(color); + + g2d.fillOval( startPosX + 25, startPosY + 47, 10, 9); + g2d.fillOval( startPosX + 45, startPosY + 47, 10, 9); + g2d.fillOval( startPosX + 75, startPosY + 47, 10, 9); + g2d.fillOval( startPosX + 95, startPosY + 47, 10, 9); + + g2d.setColor(Color.BLACK); + + g2d.drawOval( startPosX + 25, startPosY + 47, 10, 9); + g2d.drawOval( startPosX + 45, startPosY + 47, 10, 9); + g2d.drawOval( startPosX + 75, startPosY + 47, 10, 9); + g2d.drawOval( startPosX + 95, startPosY + 47, 10, 9); + } + + private void drawThreeWheels(Graphics2D g2d, Color color, int startPosX, int startPosY) { + g2d.setColor(color); + + g2d.fillOval( startPosX + 25, startPosY + 47, 8, 9); + g2d.fillOval( startPosX + 36, startPosY + 47, 8, 9); + g2d.fillOval( startPosX + 47, startPosY + 47, 8, 9); + g2d.fillOval( startPosX + 76, startPosY + 47, 8, 9); + g2d.fillOval( startPosX + 87, startPosY + 47, 8, 9); + g2d.fillOval( startPosX + 98, startPosY + 47, 8, 9); + + g2d.setColor(Color.BLACK); + + g2d.drawOval( startPosX + 25, startPosY + 47, 8, 9); + g2d.drawOval( startPosX + 36, startPosY + 47, 8, 9); + g2d.drawOval( startPosX + 47, startPosY + 47, 8, 9); + g2d.drawOval( startPosX + 76, startPosY + 47, 8, 9); + g2d.drawOval( startPosX + 87, startPosY + 47, 8, 9); + g2d.drawOval( startPosX + 98, startPosY + 47, 8, 9); + } + + private void drawFourWheels(Graphics2D g2d, Color color, int startPosX, int startPosY) { + g2d.setColor(color); + + g2d.fillOval( startPosX + 25, startPosY + 47, 6, 9); + g2d.fillOval( startPosX + 33, startPosY + 47, 6, 9); + g2d.fillOval( startPosX + 41, startPosY + 47, 6, 9); + g2d.fillOval( startPosX + 49, startPosY + 47, 6, 9); + g2d.fillOval( startPosX + 75, startPosY + 47, 6, 9); + g2d.fillOval( startPosX + 83, startPosY + 47, 6, 9); + g2d.fillOval( startPosX + 91, startPosY + 47, 6, 9); + g2d.fillOval( startPosX + 99, startPosY + 47, 6, 9); + + g2d.setColor(Color.BLACK); + + g2d.drawOval( startPosX + 25, startPosY + 47, 6, 9); + g2d.drawOval( startPosX + 33, startPosY + 47, 6, 9); + g2d.drawOval( startPosX + 41, startPosY + 47, 6, 9); + g2d.drawOval( startPosX + 49, startPosY + 47, 6, 9); + g2d.drawOval( startPosX + 76, startPosY + 47, 6, 9); + g2d.drawOval( startPosX + 84, startPosY + 47, 6, 9); + g2d.drawOval( startPosX + 92, startPosY + 47, 6, 9); + g2d.drawOval( startPosX + 100, startPosY + 47, 6, 9); + } +} diff --git a/src/project/monorail/EntityMonorail.java b/src/project/monorail/EntityMonorail.java new file mode 100644 index 0000000..c0bbc46 --- /dev/null +++ b/src/project/monorail/EntityMonorail.java @@ -0,0 +1,80 @@ +package project.monorail; + +import java.awt.*; + +public class EntityMonorail { + + private int speed; + + public int getSpeed() { + return speed; + } + + private void setSpeed(int speed) { + this.speed = speed; + } + + private double weight; + + public double getWeight() { + return weight; + } + + private void setWeight(double weight) { + this.weight = weight; + } + + private Color mainColor; + + public Color getMainColor() { + return mainColor; + } + + private void setMainColor(Color mainColor) { + this.mainColor = mainColor; + } + + private Color additionalColor; + + public Color getAdditionalColor() { + return additionalColor; + } + + private void setAdditionalColor(Color additionalColor) { + this.additionalColor = additionalColor; + } + + private boolean magneticRail; + + public boolean getMagneticRail() { + return magneticRail; + } + private void setMagneticRail(boolean magneticRail) { + this.magneticRail = magneticRail; + } + + private boolean extraCabin; + + public boolean getExtraCabin() { + return extraCabin; + } + + private void setExtraCabin(boolean extraCabin) { + this.extraCabin = extraCabin; + } + + private double step; + + public double getStep() { + return (double)speed * 100 / weight; + } + + public void Init(int speed, double weight, Color mainColor , Color additionalColor , boolean magneticRail, boolean extraCabin) { + this.speed = speed; + this.weight = weight; + this.mainColor = mainColor; + this.additionalColor = additionalColor; + this.magneticRail = magneticRail; + this.extraCabin = extraCabin; + } +} diff --git a/src/project/monorail/FrameMonorail.java b/src/project/monorail/FrameMonorail.java new file mode 100644 index 0000000..761684f --- /dev/null +++ b/src/project/monorail/FrameMonorail.java @@ -0,0 +1,20 @@ +package project.monorail; + +import javax.swing.*; + +public class FrameMonorail extends JFrame { + + PictureBox pictureBox; + public FrameMonorail() { + super("Monorail"); + setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + + pictureBox = new PictureBox(); + add(pictureBox); + + pack(); + setLocationRelativeTo(null); + setVisible(true); + } + +} diff --git a/src/project/monorail/Main.java b/src/project/monorail/Main.java new file mode 100644 index 0000000..1a6ad5a --- /dev/null +++ b/src/project/monorail/Main.java @@ -0,0 +1,8 @@ +package project.monorail; + +public class Main { + public static void main(String[] args) { + FrameMonorail frame = new FrameMonorail(); + } +} + diff --git a/src/project/monorail/PictureBox.java b/src/project/monorail/PictureBox.java new file mode 100644 index 0000000..0549c23 --- /dev/null +++ b/src/project/monorail/PictureBox.java @@ -0,0 +1,170 @@ +package project.monorail; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionListener; +import java.util.Random; + +public class PictureBox extends JPanel { + + private DrawingMonorail drawingMonorail; + + JButton buttonLeft; + + JButton buttonUp; + + JButton buttonRight; + + JButton buttonDown; + + JButton buttonCreateMonorail; + + JPanel buttonsPanel; + + JPanel buttonsMovePanel; + + JPanel paddingPanel; + + public PictureBox() { + setLayout(new BorderLayout()); + + buttonsPanel = new JPanel(); + buttonsPanel.setLayout(new BoxLayout(buttonsPanel, BoxLayout.X_AXIS)); + buttonsPanel.setOpaque(false); + + buttonCreateMonorail = new JButton("Create"); + buttonCreateMonorail.setFocusable(false); + buttonCreateMonorail.setFont(new Font("Segoe UI", Font.PLAIN, 12)); + buttonCreateMonorail.setBackground(Color.LIGHT_GRAY); + buttonCreateMonorail.setPreferredSize(new Dimension(75, 23)); + + buttonCreateMonorail.addActionListener (e -> { + Random random = new Random(); + drawingMonorail = new DrawingMonorail(); + drawingMonorail.Init(random.nextInt(200, 300), + random.nextInt(1000, 3000), + new Color(random.nextInt(0, 256), random.nextInt(0, 256), + random.nextInt(0, 256)), + new Color(random.nextInt(0, 256), random.nextInt(0, 256), + random.nextInt(0, 256)), + random.nextBoolean(), random.nextBoolean(), this.getWidth(), this.getHeight(), random.nextInt(2, 5)); + drawingMonorail.SetPosition(random.nextInt(10, 100), random.nextInt(10, 100)); + repaint(); + }); + + ActionListener buttonMoveListener = e -> { + if (drawingMonorail == null) + { + return; + } + + String buttonName = ((JButton) e.getSource()).getName(); + + switch (buttonName) { + case ("buttonUp"): + drawingMonorail.MoveTransport(DirectionType.Up); + break; + case ("buttonDown"): + drawingMonorail.MoveTransport(DirectionType.Down); + break; + case ("buttonLeft"): + drawingMonorail.MoveTransport(DirectionType.Left); + break; + case ("buttonRight"): + drawingMonorail.MoveTransport(DirectionType.Right); + break; + } + repaint(); + }; + + buttonLeft = new JButton(); + buttonLeft.setName("buttonLeft"); + buttonLeft.setFocusable(false); + buttonLeft.setPreferredSize(new Dimension(30, 30)); + buttonLeft.setIcon(new ImageIcon("Resources/arrowLeft.png")); + buttonLeft.addActionListener(buttonMoveListener); + + buttonRight = new JButton(); + buttonRight.setName("buttonRight"); + buttonRight.setFocusable(false); + buttonRight.setPreferredSize(new Dimension(30, 30)); + buttonRight.setIcon(new ImageIcon("Resources/arrowRight.png")); + buttonRight.addActionListener(buttonMoveListener); + + buttonDown = new JButton(); + buttonDown.setName("buttonDown"); + buttonDown.setFocusable(false); + buttonDown.setPreferredSize(new Dimension(30, 30)); + buttonDown.setIcon(new ImageIcon("Resources/arrowDown.png")); + buttonDown.addActionListener(buttonMoveListener); + + buttonUp = new JButton(); + buttonUp.setName("buttonUp"); + buttonUp.setFocusable(false); + buttonUp.setPreferredSize(new Dimension(30, 30)); + buttonUp.setIcon(new ImageIcon("Resources/arrowUp.png")); + buttonUp.addActionListener(buttonMoveListener); + + buttonsMovePanel = new JPanel(); + buttonsMovePanel.setLayout(new GridBagLayout()); + buttonsMovePanel.setOpaque(false); + + GridBagConstraints constrains = new GridBagConstraints(); + constrains.insets = new Insets(5,5,5,5); + constrains.gridx = 0; + constrains.gridy = 0; + + buttonsMovePanel.add(Box.createHorizontalStrut(30), constrains); + + constrains.gridx = 1; + constrains.gridy = 0; + + buttonsMovePanel.add(buttonUp, constrains); + + constrains.gridx = 2; + constrains.gridy = 0; + + buttonsMovePanel.add(Box.createHorizontalStrut(30), constrains); + + constrains.gridx = 0; + constrains.gridy = 1; + + buttonsMovePanel.add(buttonLeft, constrains); + + constrains.gridx = 1; + constrains.gridy = 1; + + buttonsMovePanel.add(buttonDown, constrains); + + constrains.gridx = 2; + constrains.gridy = 1; + + buttonsMovePanel.add(buttonRight, constrains); + + paddingPanel = new JPanel(); + paddingPanel.setLayout(new BoxLayout(paddingPanel, BoxLayout.Y_AXIS)); + paddingPanel.setOpaque(false); + + paddingPanel.add(buttonsMovePanel); + paddingPanel.add(Box.createVerticalStrut(15)); + + buttonsPanel.add(Box.createHorizontalStrut(20)); + buttonsPanel.add(buttonCreateMonorail); + buttonsPanel.add(Box.createHorizontalStrut(650)); + buttonsPanel.add(paddingPanel); + + add(buttonsPanel, BorderLayout.SOUTH); + setPreferredSize(new Dimension(900, 500)); + } + + @Override + protected void paintComponent(Graphics g) { + if (drawingMonorail == null) { + return; + } + + super.paintComponent(g); + Graphics2D g2d = (Graphics2D) g; + drawingMonorail.DrawTransport(g2d); + } +} diff --git a/src/project/monorail/WheelNumber.java b/src/project/monorail/WheelNumber.java new file mode 100644 index 0000000..6b8f291 --- /dev/null +++ b/src/project/monorail/WheelNumber.java @@ -0,0 +1,8 @@ +package project.monorail; +public enum WheelNumber { + Two, + + Three, + + Four +} -- 2.25.1 From 1d873b4a41ef426ac21c67fe39d8aedcf77ca005 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=98=D0=BB=D1=8C=D1=8F?= <Илья@WIN-RANNDDD> Date: Mon, 9 Oct 2023 13:10:34 +0400 Subject: [PATCH 2/6] =?UTF-8?q?=D0=9C=D0=B5=D0=BB=D0=BA=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20=D0=BA=201=20=D0=BB?= =?UTF-8?q?=D0=B0=D0=B1=D0=BE=D1=80=D0=B0=D1=82=D0=BE=D1=80=D0=BD=D0=BE?= =?UTF-8?q?=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/project/monorail/DrawingWheels.java | 1 + src/project/monorail/FrameMonorail.java | 1 + 2 files changed, 2 insertions(+) diff --git a/src/project/monorail/DrawingWheels.java b/src/project/monorail/DrawingWheels.java index 05c6d61..857f3d7 100644 --- a/src/project/monorail/DrawingWheels.java +++ b/src/project/monorail/DrawingWheels.java @@ -4,6 +4,7 @@ import java.awt.*; public class DrawingWheels { private WheelNumber wheelNumber; + public void setWheelNumber(int number) { switch (number) { case 2: diff --git a/src/project/monorail/FrameMonorail.java b/src/project/monorail/FrameMonorail.java index 761684f..4b09c99 100644 --- a/src/project/monorail/FrameMonorail.java +++ b/src/project/monorail/FrameMonorail.java @@ -5,6 +5,7 @@ import javax.swing.*; public class FrameMonorail extends JFrame { PictureBox pictureBox; + public FrameMonorail() { super("Monorail"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); -- 2.25.1 From eb9938a360eb8b92304ecd8d2d48e7eb56f423e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=98=D0=BB=D1=8C=D1=8F?= <Илья@WIN-RANNDDD> Date: Mon, 9 Oct 2023 13:18:25 +0400 Subject: [PATCH 3/6] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=BE=20=D0=B8=D0=BC=D1=8F=20=D0=BF=D0=B0=D0=BA=D0=B5=D1=82?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/{project/monorail => projectMonorail}/DirectionType.java | 2 +- src/{project/monorail => projectMonorail}/DrawingMonorail.java | 2 +- src/{project/monorail => projectMonorail}/DrawingWheels.java | 2 +- src/{project/monorail => projectMonorail}/EntityMonorail.java | 2 +- src/{project/monorail => projectMonorail}/FrameMonorail.java | 2 +- src/{project/monorail => projectMonorail}/Main.java | 2 +- src/{project/monorail => projectMonorail}/PictureBox.java | 2 +- src/{project/monorail => projectMonorail}/WheelNumber.java | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) rename src/{project/monorail => projectMonorail}/DirectionType.java (73%) rename src/{project/monorail => projectMonorail}/DrawingMonorail.java (99%) rename src/{project/monorail => projectMonorail}/DrawingWheels.java (99%) rename src/{project/monorail => projectMonorail}/EntityMonorail.java (98%) rename src/{project/monorail => projectMonorail}/FrameMonorail.java (93%) rename src/{project/monorail => projectMonorail}/Main.java (82%) rename src/{project/monorail => projectMonorail}/PictureBox.java (99%) rename src/{project/monorail => projectMonorail}/WheelNumber.java (69%) diff --git a/src/project/monorail/DirectionType.java b/src/projectMonorail/DirectionType.java similarity index 73% rename from src/project/monorail/DirectionType.java rename to src/projectMonorail/DirectionType.java index cf62063..a44e86f 100644 --- a/src/project/monorail/DirectionType.java +++ b/src/projectMonorail/DirectionType.java @@ -1,4 +1,4 @@ -package project.monorail; +package projectMonorail; public enum DirectionType { Up, diff --git a/src/project/monorail/DrawingMonorail.java b/src/projectMonorail/DrawingMonorail.java similarity index 99% rename from src/project/monorail/DrawingMonorail.java rename to src/projectMonorail/DrawingMonorail.java index 12db91f..f7cdcb9 100644 --- a/src/project/monorail/DrawingMonorail.java +++ b/src/projectMonorail/DrawingMonorail.java @@ -1,4 +1,4 @@ -package project.monorail; +package projectMonorail; import java.awt.*; diff --git a/src/project/monorail/DrawingWheels.java b/src/projectMonorail/DrawingWheels.java similarity index 99% rename from src/project/monorail/DrawingWheels.java rename to src/projectMonorail/DrawingWheels.java index 857f3d7..5cb565c 100644 --- a/src/project/monorail/DrawingWheels.java +++ b/src/projectMonorail/DrawingWheels.java @@ -1,4 +1,4 @@ -package project.monorail; +package projectMonorail; import java.awt.*; diff --git a/src/project/monorail/EntityMonorail.java b/src/projectMonorail/EntityMonorail.java similarity index 98% rename from src/project/monorail/EntityMonorail.java rename to src/projectMonorail/EntityMonorail.java index c0bbc46..bc38526 100644 --- a/src/project/monorail/EntityMonorail.java +++ b/src/projectMonorail/EntityMonorail.java @@ -1,4 +1,4 @@ -package project.monorail; +package projectMonorail; import java.awt.*; diff --git a/src/project/monorail/FrameMonorail.java b/src/projectMonorail/FrameMonorail.java similarity index 93% rename from src/project/monorail/FrameMonorail.java rename to src/projectMonorail/FrameMonorail.java index 4b09c99..41b6376 100644 --- a/src/project/monorail/FrameMonorail.java +++ b/src/projectMonorail/FrameMonorail.java @@ -1,4 +1,4 @@ -package project.monorail; +package projectMonorail; import javax.swing.*; diff --git a/src/project/monorail/Main.java b/src/projectMonorail/Main.java similarity index 82% rename from src/project/monorail/Main.java rename to src/projectMonorail/Main.java index 1a6ad5a..ea1b9a7 100644 --- a/src/project/monorail/Main.java +++ b/src/projectMonorail/Main.java @@ -1,4 +1,4 @@ -package project.monorail; +package projectMonorail; public class Main { public static void main(String[] args) { diff --git a/src/project/monorail/PictureBox.java b/src/projectMonorail/PictureBox.java similarity index 99% rename from src/project/monorail/PictureBox.java rename to src/projectMonorail/PictureBox.java index 0549c23..d7e35b1 100644 --- a/src/project/monorail/PictureBox.java +++ b/src/projectMonorail/PictureBox.java @@ -1,4 +1,4 @@ -package project.monorail; +package projectMonorail; import javax.swing.*; import java.awt.*; diff --git a/src/project/monorail/WheelNumber.java b/src/projectMonorail/WheelNumber.java similarity index 69% rename from src/project/monorail/WheelNumber.java rename to src/projectMonorail/WheelNumber.java index 6b8f291..eb594ad 100644 --- a/src/project/monorail/WheelNumber.java +++ b/src/projectMonorail/WheelNumber.java @@ -1,4 +1,4 @@ -package project.monorail; +package projectMonorail; public enum WheelNumber { Two, -- 2.25.1 From aa1469a83d765cb507202c812d9be7d8dd6a3478 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=98=D0=BB=D1=8C=D1=8F?= <Илья@WIN-RANNDDD> Date: Tue, 10 Oct 2023 15:48:46 +0400 Subject: [PATCH 4/6] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=BE=20=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=82=D0=B8=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BA=D0=BE=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/projectMonorail/DirectionType.java | 1 + src/projectMonorail/DrawingMonorail.java | 4 ++-- src/projectMonorail/DrawingWheels.java | 1 + src/projectMonorail/EntityMonorail.java | 1 + src/projectMonorail/FrameMonorail.java | 1 - src/projectMonorail/Main.java | 2 +- src/projectMonorail/WheelNumber.java | 1 + 7 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/projectMonorail/DirectionType.java b/src/projectMonorail/DirectionType.java index a44e86f..1fa2045 100644 --- a/src/projectMonorail/DirectionType.java +++ b/src/projectMonorail/DirectionType.java @@ -1,4 +1,5 @@ package projectMonorail; + public enum DirectionType { Up, diff --git a/src/projectMonorail/DrawingMonorail.java b/src/projectMonorail/DrawingMonorail.java index f7cdcb9..d0ab47f 100644 --- a/src/projectMonorail/DrawingMonorail.java +++ b/src/projectMonorail/DrawingMonorail.java @@ -6,8 +6,6 @@ public class DrawingMonorail { private EntityMonorail entityMonorail; - private DrawingWheels drawingWheels; - public EntityMonorail getEntityMonorail() { return entityMonorail; } @@ -16,6 +14,8 @@ public class DrawingMonorail { this.entityMonorail = entityMonorail; } + private DrawingWheels drawingWheels; + private int pictureWidth; private int pictureHeight; diff --git a/src/projectMonorail/DrawingWheels.java b/src/projectMonorail/DrawingWheels.java index 5cb565c..25986c3 100644 --- a/src/projectMonorail/DrawingWheels.java +++ b/src/projectMonorail/DrawingWheels.java @@ -3,6 +3,7 @@ package projectMonorail; import java.awt.*; public class DrawingWheels { + private WheelNumber wheelNumber; public void setWheelNumber(int number) { diff --git a/src/projectMonorail/EntityMonorail.java b/src/projectMonorail/EntityMonorail.java index bc38526..d25a35d 100644 --- a/src/projectMonorail/EntityMonorail.java +++ b/src/projectMonorail/EntityMonorail.java @@ -49,6 +49,7 @@ public class EntityMonorail { public boolean getMagneticRail() { return magneticRail; } + private void setMagneticRail(boolean magneticRail) { this.magneticRail = magneticRail; } diff --git a/src/projectMonorail/FrameMonorail.java b/src/projectMonorail/FrameMonorail.java index 41b6376..23ba94e 100644 --- a/src/projectMonorail/FrameMonorail.java +++ b/src/projectMonorail/FrameMonorail.java @@ -17,5 +17,4 @@ public class FrameMonorail extends JFrame { setLocationRelativeTo(null); setVisible(true); } - } diff --git a/src/projectMonorail/Main.java b/src/projectMonorail/Main.java index ea1b9a7..f23be88 100644 --- a/src/projectMonorail/Main.java +++ b/src/projectMonorail/Main.java @@ -2,7 +2,7 @@ package projectMonorail; public class Main { public static void main(String[] args) { - FrameMonorail frame = new FrameMonorail(); + FrameMonorail frameMonorail = new FrameMonorail(); } } diff --git a/src/projectMonorail/WheelNumber.java b/src/projectMonorail/WheelNumber.java index eb594ad..f6111f6 100644 --- a/src/projectMonorail/WheelNumber.java +++ b/src/projectMonorail/WheelNumber.java @@ -1,4 +1,5 @@ package projectMonorail; + public enum WheelNumber { Two, -- 2.25.1 From 7d64623ac15cac72448d9479770036cb7f705eab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=98=D0=BB=D1=8C=D1=8F?= <Илья@WIN-RANNDDD> Date: Tue, 10 Oct 2023 18:36:53 +0400 Subject: [PATCH 5/6] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D1=8B?= =?UTF-8?q?=20=D0=BB=D0=B8=D1=88=D0=BD=D0=B8=D0=B5=20=D0=BC=D0=B5=D1=82?= =?UTF-8?q?=D0=BE=D0=B4=D1=8B=20=D0=B8=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=20=D0=BC=D0=BE=D0=B4=D0=B8=D1=84=D0=B8=D0=BA=D0=B0?= =?UTF-8?q?=D1=82=D0=BE=D1=80=20=D0=B4=D0=BE=D1=81=D1=82=D1=83=D0=BF=D0=B0?= =?UTF-8?q?=20=D1=83=20=D0=BF=D0=BE=D0=BB=D1=8F=20=D0=B2=20=D0=BA=D0=BB?= =?UTF-8?q?=D0=B0=D1=81=D1=81=D0=B5=20FrameMonorail?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/projectMonorail/DrawingMonorail.java | 4 ---- src/projectMonorail/EntityMonorail.java | 26 ------------------------ src/projectMonorail/FrameMonorail.java | 2 +- 3 files changed, 1 insertion(+), 31 deletions(-) diff --git a/src/projectMonorail/DrawingMonorail.java b/src/projectMonorail/DrawingMonorail.java index d0ab47f..80b4886 100644 --- a/src/projectMonorail/DrawingMonorail.java +++ b/src/projectMonorail/DrawingMonorail.java @@ -10,10 +10,6 @@ public class DrawingMonorail { return entityMonorail; } - private void setEntityMonorail(EntityMonorail entityMonorail) { - this.entityMonorail = entityMonorail; - } - private DrawingWheels drawingWheels; private int pictureWidth; diff --git a/src/projectMonorail/EntityMonorail.java b/src/projectMonorail/EntityMonorail.java index d25a35d..8eee9e4 100644 --- a/src/projectMonorail/EntityMonorail.java +++ b/src/projectMonorail/EntityMonorail.java @@ -10,62 +10,36 @@ public class EntityMonorail { return speed; } - private void setSpeed(int speed) { - this.speed = speed; - } - private double weight; public double getWeight() { return weight; } - private void setWeight(double weight) { - this.weight = weight; - } - private Color mainColor; public Color getMainColor() { return mainColor; } - private void setMainColor(Color mainColor) { - this.mainColor = mainColor; - } - private Color additionalColor; public Color getAdditionalColor() { return additionalColor; } - private void setAdditionalColor(Color additionalColor) { - this.additionalColor = additionalColor; - } - private boolean magneticRail; public boolean getMagneticRail() { return magneticRail; } - private void setMagneticRail(boolean magneticRail) { - this.magneticRail = magneticRail; - } - private boolean extraCabin; public boolean getExtraCabin() { return extraCabin; } - private void setExtraCabin(boolean extraCabin) { - this.extraCabin = extraCabin; - } - - private double step; - public double getStep() { return (double)speed * 100 / weight; } diff --git a/src/projectMonorail/FrameMonorail.java b/src/projectMonorail/FrameMonorail.java index 23ba94e..287cd83 100644 --- a/src/projectMonorail/FrameMonorail.java +++ b/src/projectMonorail/FrameMonorail.java @@ -4,7 +4,7 @@ import javax.swing.*; public class FrameMonorail extends JFrame { - PictureBox pictureBox; + private PictureBox pictureBox; public FrameMonorail() { super("Monorail"); -- 2.25.1 From ed022a2dd68deb06942a2a7bb922deaa9082d195 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=98=D0=BB=D1=8C=D1=8F?= <Илья@WIN-RANNDDD> Date: Wed, 11 Oct 2023 11:44:10 +0400 Subject: [PATCH 6/6] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D1=8B=20=D0=BC=D0=BE=D0=B4=D0=B8=D1=84=D0=B8=D0=BA=D0=B0=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D1=8B=20=D0=B4=D0=BE=D1=81=D1=82=D1=83=D0=BF=D0=B0?= =?UTF-8?q?=20=D0=B2=20=D0=BA=D0=BB=D0=B0=D1=81=D1=81=D0=B5=20PictureBox?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/projectMonorail/PictureBox.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/projectMonorail/PictureBox.java b/src/projectMonorail/PictureBox.java index d7e35b1..8ac6a6c 100644 --- a/src/projectMonorail/PictureBox.java +++ b/src/projectMonorail/PictureBox.java @@ -9,21 +9,21 @@ public class PictureBox extends JPanel { private DrawingMonorail drawingMonorail; - JButton buttonLeft; + private JButton buttonLeft; - JButton buttonUp; + private JButton buttonUp; - JButton buttonRight; + private JButton buttonRight; - JButton buttonDown; + private JButton buttonDown; - JButton buttonCreateMonorail; + private JButton buttonCreateMonorail; - JPanel buttonsPanel; + private JPanel buttonsPanel; - JPanel buttonsMovePanel; + private JPanel buttonsMovePanel; - JPanel paddingPanel; + private JPanel paddingPanel; public PictureBox() { setLayout(new BorderLayout()); -- 2.25.1