From 88e0ccbe5e407ff37a320933f36ff57777d8c21e Mon Sep 17 00:00:00 2001 From: Sergey Kozyrev Date: Tue, 28 Nov 2023 18:10:22 +0400 Subject: [PATCH] SomethingStrange --- BaseTanker.java | 2 +- CollectionFrame.java | 8 ++++---- DrawGasolineTanker.java | 6 ++++++ DrawTanker.java | 12 +++++++++++- DrawWheelCircle.java | 22 ++++++++++++++++++---- DrawWheelClassic.java | 13 ++++++++++++- DrawWheelSquare.java | 29 +++++++++++++++++++++++------ GasolineTanker.java | 1 + IWheelDraw.java | 1 + Main.java | 1 - 10 files changed, 77 insertions(+), 18 deletions(-) diff --git a/BaseTanker.java b/BaseTanker.java index 2cc44da..7f818e5 100644 --- a/BaseTanker.java +++ b/BaseTanker.java @@ -23,7 +23,7 @@ public class BaseTanker { { return BodyColor; } - private void setBodyColor(Color bodyColor) + public void setBodyColor(Color bodyColor) { BodyColor = bodyColor; } diff --git a/CollectionFrame.java b/CollectionFrame.java index a086266..0832ba2 100644 --- a/CollectionFrame.java +++ b/CollectionFrame.java @@ -86,13 +86,13 @@ class CollectionFrame extends JComponent { var obj = _tanksStorage.get(frame.listStorage.getSelectedValue()); if (obj == null) return; - BaseFrame form = new BaseFrame(); + ConfigFrame form = new ConfigFrame(); form.setVisible(true); - form.buttonSelect.addActionListener( + form.buttonAdd.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e){ - - if (obj.plus(form.Gasoline.GetSelectedCar()) != -1) + DrawTanker dT = form.Gasoline._tanker; + if (dT != null && obj.plus(dT) != -1) { form.dispose(); JOptionPane.showMessageDialog(null, "Объект добавлен", "Информация", JOptionPane.INFORMATION_MESSAGE); diff --git a/DrawGasolineTanker.java b/DrawGasolineTanker.java index ced75df..be6ce35 100644 --- a/DrawGasolineTanker.java +++ b/DrawGasolineTanker.java @@ -7,6 +7,12 @@ public class DrawGasolineTanker extends DrawTanker { GasolineTanker = new GasolineTanker(speed, weight, bodyColor, additionalColor, bodyKit, wing, sportLine); } } + public DrawGasolineTanker(int speed, double weight, Color bodyColor, Color additionalColor, boolean bodyKit, boolean wing, boolean sportLine, int width, int height, int wheelCount) { + super(speed, weight, bodyColor, width, height, wheelCount); + if (GasolineTanker != null) { + GasolineTanker = new GasolineTanker(speed, weight, bodyColor, additionalColor, bodyKit, wing, sportLine); + } + } public DrawGasolineTanker(GasolineTanker tanker, int width, int height, IWheelDraw wheelMode) { super(tanker, width, height, wheelMode); diff --git a/DrawTanker.java b/DrawTanker.java index 24e8676..0c4f667 100644 --- a/DrawTanker.java +++ b/DrawTanker.java @@ -3,7 +3,7 @@ import java.awt.*; public class DrawTanker { protected BaseTanker GasolineTanker; public BaseTanker GetGasolineTanker() {return GasolineTanker;} - private IWheelDraw wheelsDrawing; + protected IWheelDraw wheelsDrawing; protected int _pictureWidth; protected int _pictureHeight; protected int _startPosX; @@ -49,6 +49,16 @@ public class DrawTanker { wheelsDrawing.setWheelCount(wheelCount); } + public DrawTanker(int speed, double weight, Color bodyColor, int width, int height, int wheelCount) + { + _pictureHeight = height; + _pictureWidth = width; + GasolineTanker = new BaseTanker(speed, weight, bodyColor); + wheelsDrawing = new DrawWheelClassic(); + wheelsDrawing.setWheelCount(wheelCount); + } + + public DrawTanker(BaseTanker tanker, int width, int height, IWheelDraw wheels) { GasolineTanker = tanker; diff --git a/DrawWheelCircle.java b/DrawWheelCircle.java index a2f7bb5..ece7ada 100644 --- a/DrawWheelCircle.java +++ b/DrawWheelCircle.java @@ -17,21 +17,35 @@ public class DrawWheelCircle implements IWheelDraw { wheelCounter = WheelCounter.TWO; } + public int getWheelCount() + { + switch (wheelCounter) + { + case TWO -> {return 2;} + case THREE -> {return 3;} + case FOUR -> {return 4;} + } + return 2; + } public void DrawWheels(int _startPosX, int _startPosY, Color bodyColor, Graphics2D g2d) { g2d.setColor(bodyColor); + Random rnd = new Random(); g2d.fillOval(10 + _startPosX, 60 + _startPosY, 20, 20); g2d.fillOval(80 + _startPosX, 60 + _startPosY, 20, 20); + Color stringColor = new Color(rnd.nextInt(0, 256), rnd.nextInt(0, 256), rnd.nextInt(0, 256)); + g2d.setColor(stringColor); + g2d.drawString("S",15 + _startPosX, 75 + _startPosY); + g2d.drawString("S",85 + _startPosX, 75 + _startPosY); + if (wheelCounter == null) + return; + g2d.setColor(bodyColor); switch (wheelCounter) { case THREE -> {g2d.fillOval(45 + _startPosX, 60 + _startPosY ,20, 20);} case FOUR -> {g2d.fillOval(30 + _startPosX, 60 + _startPosY ,20, 20); g2d.fillOval(60 + _startPosX, 60 + _startPosY ,20, 20);} } - Random rnd = new Random(); - Color stringColor = new Color(rnd.nextInt(0, 256), rnd.nextInt(0, 256), rnd.nextInt(0, 256)); g2d.setColor(stringColor); - g2d.drawString("S",15 + _startPosX, 75 + _startPosY); - g2d.drawString("S",85 + _startPosX, 75 + _startPosY); switch (wheelCounter) { case THREE -> {g2d.drawString("S",50 + _startPosX, 75 + _startPosY);} diff --git a/DrawWheelClassic.java b/DrawWheelClassic.java index 273c716..c8cdf61 100644 --- a/DrawWheelClassic.java +++ b/DrawWheelClassic.java @@ -15,12 +15,23 @@ public class DrawWheelClassic implements IWheelDraw{ else if (count % 3 == 2) wheelCounter = WheelCounter.TWO; } - + public int getWheelCount() + { + switch (wheelCounter) + { + case TWO -> {return 2;} + case THREE -> {return 3;} + case FOUR -> {return 4;} + } + return 2; + } public void DrawWheels(int _startPosX, int _startPosY, Color bodyColor, Graphics2D g2d) { g2d.setColor(bodyColor); g2d.fillOval(10 + _startPosX, 60 + _startPosY, 20, 20); g2d.fillOval(80 + _startPosX, 60 + _startPosY, 20, 20); + if (wheelCounter == null) + return; switch (wheelCounter) { case THREE -> {g2d.fillOval(45 + _startPosX, 60 + _startPosY ,20, 20);} diff --git a/DrawWheelSquare.java b/DrawWheelSquare.java index 3dd7c18..215ec7a 100644 --- a/DrawWheelSquare.java +++ b/DrawWheelSquare.java @@ -17,22 +17,39 @@ public class DrawWheelSquare implements IWheelDraw{ wheelCounter = WheelCounter.TWO; } + public int getWheelCount() + { + switch (wheelCounter) + { + case TWO -> {return 2;} + case THREE -> {return 3;} + case FOUR -> {return 4;} + } + return 2; + } public void DrawWheels(int _startPosX, int _startPosY, Color bodyColor, Graphics2D g2d) { g2d.setColor(bodyColor); g2d.fillOval(10 + _startPosX, 60 + _startPosY, 20, 20); - g2d.drawString("S",15 + _startPosX, 60 + _startPosY); g2d.fillOval(80 + _startPosX, 60 + _startPosY, 20, 20); - switch (wheelCounter) - { - case THREE -> {g2d.fillOval(45 + _startPosX, 60 + _startPosY ,20, 20);} - case FOUR -> {g2d.fillOval(30 + _startPosX, 60 + _startPosY ,20, 20); g2d.fillOval(60 + _startPosX, 60 + _startPosY ,20, 20);} - } Random rnd = new Random(); Color stringColor = new Color(rnd.nextInt(0, 256), rnd.nextInt(0, 256), rnd.nextInt(0, 256)); g2d.setColor(stringColor); g2d.fillRect(15 + _startPosX, 65 + _startPosY, 10, 10); g2d.fillRect(85 + _startPosX, 65 + _startPosY, 10, 10); + if (wheelCounter == null) + return; + g2d.setColor(bodyColor); + switch (wheelCounter) { + case THREE -> { + g2d.fillOval(45 + _startPosX, 60 + _startPosY, 20, 20); + } + case FOUR -> { + g2d.fillOval(30 + _startPosX, 60 + _startPosY, 20, 20); + g2d.fillOval(60 + _startPosX, 60 + _startPosY, 20, 20); + } + } + g2d.setColor(stringColor); switch (wheelCounter) { case THREE -> {g2d.fillRect(50 + _startPosX, 65 + _startPosY, 10, 10);} diff --git a/GasolineTanker.java b/GasolineTanker.java index 14e10fc..5eeb473 100644 --- a/GasolineTanker.java +++ b/GasolineTanker.java @@ -3,6 +3,7 @@ import java.awt.*; public class GasolineTanker extends BaseTanker{ private Color AdditionalColor; public Color GetAdditionalColor() {return AdditionalColor;} + public void setAdditionalColor(Color color) {AdditionalColor = color;} private boolean BodyKit; public boolean GetBodyKit() {return BodyKit;} private boolean Wing; diff --git a/IWheelDraw.java b/IWheelDraw.java index a4b7634..9099419 100644 --- a/IWheelDraw.java +++ b/IWheelDraw.java @@ -3,5 +3,6 @@ import java.awt.*; public interface IWheelDraw { void DrawWheels(int _startPosX, int _startPosY, Color bodyColor, Graphics2D g2d); void setWheelCount(int wheelCount); + int getWheelCount(); } diff --git a/Main.java b/Main.java index 5bbd9f0..0b46eec 100644 --- a/Main.java +++ b/Main.java @@ -1,7 +1,6 @@ public class Main { public static void main(String[] args) { GarageFrame a = new GarageFrame(); - //ComboFrame a = new ComboFrame(); a.setVisible(true); } } \ No newline at end of file