Усложненная работа

This commit is contained in:
2022-10-20 16:22:49 +04:00
parent 3dceb64956
commit ba0c2ab3b3
6 changed files with 119 additions and 4 deletions

View File

@@ -1,7 +1,8 @@
import javax.swing.*;
import java.awt.*;
public class DrawingDeck extends JComponent{
public class DrawingDeck extends JComponent implements IAdditionalDrawingObject{
private Additional_Enum _decksEnum;
@Override
public void SetAddEnum(int decksAmount) {
for(Additional_Enum item : _decksEnum.values())
{
@@ -12,6 +13,7 @@ public class DrawingDeck extends JComponent{
}
}
}
@Override
public void DrawDeck(Color colorDeck, Graphics g,float _startPosX,float _startPosY)
{
super.paintComponent(g);

44
src/DrawingOvalDeck.java Normal file
View File

@@ -0,0 +1,44 @@
import javax.swing.*;
import java.awt.*;
public class DrawingOvalDeck extends JComponent implements IAdditionalDrawingObject{
private Additional_Enum _decksEnum;
@Override
public void SetAddEnum(int decksAmount) {
for(Additional_Enum item : _decksEnum.values())
{
if(item.GetAddEnum()==decksAmount)
{
_decksEnum=item;
return;
}
}
}
@Override
public void DrawDeck(Color colorDeck, Graphics g, float _startPosX, float _startPosY)
{
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
if(_decksEnum.GetAddEnum()>=1)
{
g2d.setPaint(colorDeck);
g2d.fillOval((int)_startPosX+40, (int)_startPosY+15, 70, 5);
g2d.setPaint(Color.BLACK);
g2d.drawOval((int)_startPosX+40, (int)_startPosY+15, 70, 5);
}
if(_decksEnum.GetAddEnum()>=2)
{
g2d.setPaint(colorDeck);
g2d.fillOval((int)_startPosX+50, (int)_startPosY+10, 60, 5);
g2d.setPaint(Color.BLACK);
g2d.drawOval((int)_startPosX+50, (int)_startPosY+10, 60, 5);
}
if(_decksEnum.GetAddEnum()>=3)
{
g2d.setPaint(colorDeck);
g2d.fillOval((int)_startPosX+60, (int)_startPosY+5, 50, 5);
g2d.setPaint(Color.BLACK);
g2d.drawOval((int)_startPosX+60, (int)_startPosY+5, 50, 5);
}
}
}

View File

@@ -3,12 +3,26 @@ import java.awt.*;
import java.util.Random;
public class DrawingShip extends JPanel {
protected EntityShip Ship;
public DrawingDeck Deck;
public IAdditionalDrawingObject Deck;
public void SetEnum() {
Random r = new Random();
int numbEnum = r.nextInt(1, 4);
Deck.SetAddEnum(numbEnum);
}
public void SetFormEnum()
{
Random r = new Random();
int numbEnum = r.nextInt(1, 4);
if (numbEnum == 1) {
Deck=new DrawingDeck();
}
if (numbEnum == 2) {
Deck = new DrawingOvalDeck();
}
if (numbEnum == 3) {
Deck=new DrawingTriangleDeck();
}
}
public EntityShip GetShip() {
return Ship;
}
@@ -20,7 +34,7 @@ public class DrawingShip extends JPanel {
private int _ShipHeight = 40;
public DrawingShip(int speed, float weight, Color bodycolor) {
Ship = new EntityShip(speed, weight, bodycolor);
Deck = new DrawingDeck();
SetFormEnum();
SetEnum();
}
public DrawingShip(int speed,float weight,Color bodyColor,int shipWidth,int shipHeight)

View File

@@ -0,0 +1,49 @@
import javax.swing.*;
import java.awt.*;
public class DrawingTriangleDeck extends JComponent implements IAdditionalDrawingObject{
private Additional_Enum _decksEnum;
@Override
public void SetAddEnum(int decksAmount) {
for(Additional_Enum item : _decksEnum.values())
{
if(item.GetAddEnum()==decksAmount)
{
_decksEnum=item;
return;
}
}
}
@Override
public void DrawDeck(Color colorDeck, Graphics g,float _startPosX,float _startPosY)
{
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
if(_decksEnum.GetAddEnum()>=1)
{
g2d.setPaint(colorDeck);
int[] xValues={(int)_startPosX+40,(int)_startPosX+40+15,(int)_startPosX+40+45,(int)_startPosX+40+60};
int[] yValues={(int)_startPosY+15,(int)_startPosY+20,(int)_startPosY+20,(int)_startPosY+15};
g2d.fillPolygon(xValues,yValues,4);
g2d.setPaint(Color.BLACK);
g2d.drawPolygon(xValues,yValues,4);
}
if(_decksEnum.GetAddEnum()>=2)
{
g2d.setPaint(colorDeck);
int[] xValues2={(int)_startPosX+50,(int)_startPosX+50+15,(int)_startPosX+50+45,(int)_startPosX+50+60};
int[] yValues2={(int)_startPosY+10,(int)_startPosY+15,(int)_startPosY+15,(int)_startPosY+10};
g2d.fillPolygon(xValues2,yValues2,4);
g2d.setPaint(Color.BLACK);
g2d.drawPolygon(xValues2,yValues2,4);
}
if(_decksEnum.GetAddEnum()>=3)
{
g2d.setPaint(colorDeck);
int[] xValues3_3={(int)_startPosX+50,(int)_startPosX+50+15,(int)_startPosX+50+45,(int)_startPosX+50+60};
int[] yValues3_3={(int)_startPosY+5,(int)_startPosY+10,(int)_startPosY+10,(int)_startPosY+5};
g2d.fillPolygon(xValues3_3,yValues3_3,4);
g2d.setPaint(Color.BLACK);
g2d.drawPolygon(xValues3_3,yValues3_3,4);
}
}
}

View File

@@ -0,0 +1,6 @@
import java.awt.*;
public interface IAdditionalDrawingObject {
void SetAddEnum(int decksAmount);
void DrawDeck(Color colorDeck, Graphics g, float _startPosX, float _startPosY);
}

View File

@@ -3,7 +3,7 @@ import javax.swing.*;
public class Main {
public static void main(String[] args) {
JFrame frame = new JFrame("Лайнер");
frame.setContentPane(new FormShip().Mainpanel);
frame.setContentPane(new FormMap().MainPanel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocation(500, 200);
frame.pack();