LabWork01: Завершено, возможны мелкие поправки по оформлению
This commit is contained in:
parent
ac171b2770
commit
a48405450c
65
DrawningRollers.java
Normal file
65
DrawningRollers.java
Normal file
@ -0,0 +1,65 @@
|
||||
import java.awt.*;
|
||||
import java.util.Random;
|
||||
|
||||
public class DrawningRollers {
|
||||
private RollersCount rollersCount;
|
||||
private Color colorRollers;
|
||||
|
||||
public void setRollersCount(int count){
|
||||
switch (count) {
|
||||
case 4 -> rollersCount = RollersCount.Four;
|
||||
case 5 -> rollersCount = RollersCount.Five;
|
||||
case 6 -> rollersCount = RollersCount.Six;
|
||||
default -> rollersCount = RollersCount.Four;
|
||||
}
|
||||
}
|
||||
|
||||
public void Init(int count, Color colorRollers){
|
||||
setRollersCount(count);
|
||||
this.colorRollers = colorRollers;
|
||||
}
|
||||
|
||||
public void DrawRollers(Graphics g, float _startPosX, float _startPosY){
|
||||
Color penColor = Color.BLACK;
|
||||
Color mainColor = colorRollers==null ? Color.LIGHT_GRAY : colorRollers;
|
||||
|
||||
// Крупные катки - всегда
|
||||
g.setColor(mainColor);
|
||||
g.fillOval((int)_startPosX + 5, (int)_startPosY + 60, 22, 22);
|
||||
g.setColor(penColor);
|
||||
g.drawOval((int)_startPosX + 5, (int)_startPosY + 60, 22, 22);
|
||||
g.setColor(mainColor);
|
||||
g.fillOval((int)_startPosX + 83, (int)_startPosY + 60, 22, 22);
|
||||
g.setColor(penColor);
|
||||
g.drawOval((int)_startPosX + 83, (int)_startPosY + 60, 22, 22);
|
||||
|
||||
// Малые катки - всегда
|
||||
g.setColor(mainColor);
|
||||
g.fillOval((int)_startPosX + 43, (int)_startPosY + 58, 6, 6);
|
||||
g.setColor(penColor);
|
||||
g.drawOval((int)_startPosX + 43, (int)_startPosY + 58, 6, 6);
|
||||
g.setColor(mainColor);
|
||||
g.fillOval((int)_startPosX + 61, (int)_startPosY + 58, 6, 6);
|
||||
g.setColor(penColor);
|
||||
g.drawOval((int)_startPosX + 61, (int)_startPosY + 58, 6, 6);
|
||||
|
||||
// Средние катки - не всегда
|
||||
switch (rollersCount){
|
||||
case Six:
|
||||
g.setColor(mainColor);
|
||||
g.fillOval((int)_startPosX + 33, (int)_startPosY + 73, 10, 10);
|
||||
g.setColor(penColor);
|
||||
g.drawOval((int)_startPosX + 33, (int)_startPosY + 73, 10, 10);
|
||||
case Five:
|
||||
g.setColor(mainColor);
|
||||
g.fillOval((int)_startPosX + 68, (int)_startPosY + 73, 10, 10);
|
||||
g.setColor(penColor);
|
||||
g.drawOval((int)_startPosX + 68, (int)_startPosY + 73, 10, 10);
|
||||
}
|
||||
|
||||
// Центры крупных катков
|
||||
g.setColor(Color.BLACK);
|
||||
g.fillOval((int)_startPosX + 13, (int)_startPosY + 68, 6, 6);
|
||||
g.fillOval((int)_startPosX + 91, (int)_startPosY + 68, 6, 6);
|
||||
}
|
||||
}
|
@ -13,11 +13,15 @@ public class DrawningTracktor {
|
||||
private final int _tracktorWidth = 110; // Ширина отрисовки трактора
|
||||
private final int _tracktorHeight = 87; // Высота отрисовки трактора
|
||||
|
||||
private DrawningRollers drawningRollers;
|
||||
|
||||
// Инициализация свойств
|
||||
public void Init(int speed, float weight, Color bodyColor)
|
||||
public void Init(int speed, float weight, Color bodyColor, int countRollers)
|
||||
{
|
||||
Tracktor = new EntityTracktor();
|
||||
Tracktor.Init(speed, weight, bodyColor);
|
||||
drawningRollers = new DrawningRollers();
|
||||
drawningRollers.Init(countRollers, bodyColor);
|
||||
}
|
||||
|
||||
// Установка позиции Трактора
|
||||
@ -129,44 +133,7 @@ public class DrawningTracktor {
|
||||
g.drawLine((int)_startPosX + 1, (int)_startPosY + 65, (int)_startPosX + 1, (int)_startPosY + 75);
|
||||
g.drawLine((int)_startPosX + 110, (int)_startPosY + 65, (int)_startPosX + 110, (int)_startPosY + 75);
|
||||
|
||||
// Крупные катки
|
||||
g.setColor(Color.LIGHT_GRAY);
|
||||
g.fillOval((int)_startPosX + 5, (int)_startPosY + 60, 22, 22);
|
||||
g.setColor(penColor);
|
||||
g.drawOval((int)_startPosX + 5, (int)_startPosY + 60, 22, 22);
|
||||
g.setColor(Color.LIGHT_GRAY);
|
||||
g.fillOval((int)_startPosX + 83, (int)_startPosY + 60, 22, 22);
|
||||
g.setColor(penColor);
|
||||
g.drawOval((int)_startPosX + 83, (int)_startPosY + 60, 22, 22);
|
||||
|
||||
// Средние катки
|
||||
g.setColor(Color.LIGHT_GRAY);
|
||||
g.fillOval((int)_startPosX + 33, (int)_startPosY + 73, 10, 10);
|
||||
g.setColor(penColor);
|
||||
g.drawOval((int)_startPosX + 33, (int)_startPosY + 73, 10, 10);
|
||||
g.setColor(Color.LIGHT_GRAY);
|
||||
g.fillOval((int)_startPosX + 50, (int)_startPosY + 73, 10, 10);
|
||||
g.setColor(penColor);
|
||||
g.drawOval((int)_startPosX + 50, (int)_startPosY + 73, 10, 10);
|
||||
g.setColor(Color.LIGHT_GRAY);
|
||||
g.fillOval((int)_startPosX + 68, (int)_startPosY + 73, 10, 10);
|
||||
g.setColor(penColor);
|
||||
g.drawOval((int)_startPosX + 68, (int)_startPosY + 73, 10, 10);
|
||||
|
||||
// Малые катки
|
||||
g.setColor(Color.LIGHT_GRAY);
|
||||
g.fillOval((int)_startPosX + 43, (int)_startPosY + 58, 6, 6);
|
||||
g.setColor(penColor);
|
||||
g.drawOval((int)_startPosX + 43, (int)_startPosY + 58, 6, 6);
|
||||
g.setColor(Color.LIGHT_GRAY);
|
||||
g.fillOval((int)_startPosX + 61, (int)_startPosY + 58, 6, 6);
|
||||
g.setColor(penColor);
|
||||
g.drawOval((int)_startPosX + 61, (int)_startPosY + 58, 6, 6);
|
||||
|
||||
// Центры крупных катков
|
||||
g.setColor(Color.BLACK);
|
||||
g.fillOval((int)_startPosX + 13, (int)_startPosY + 68, 6, 6);
|
||||
g.fillOval((int)_startPosX + 91, (int)_startPosY + 68, 6, 6);
|
||||
drawningRollers.DrawRollers(g,_startPosX, _startPosY);
|
||||
}
|
||||
|
||||
// Смена границ формы отрисовки
|
||||
|
@ -1,5 +1,9 @@
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ComponentAdapter;
|
||||
import java.awt.event.ComponentEvent;
|
||||
import java.beans.PropertyChangeEvent;
|
||||
import java.beans.PropertyChangeListener;
|
||||
import java.util.Random;
|
||||
|
||||
public class FormTracktor extends JFrame {
|
||||
@ -28,7 +32,8 @@ public class FormTracktor extends JFrame {
|
||||
_tracktor.Init(
|
||||
rnd.nextInt(100, 300),
|
||||
rnd.nextInt(1000, 2000),
|
||||
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.nextInt(3,8)
|
||||
);
|
||||
_tracktor.SetPosition(
|
||||
rnd.nextInt(10, 100),
|
||||
@ -38,7 +43,6 @@ public class FormTracktor extends JFrame {
|
||||
speedLabel.setText("Скорость: " + _tracktor.getTracktor().getSpeed());
|
||||
weightLabel.setText("Вес: " + _tracktor.getTracktor().getWeight());
|
||||
colorLabel.setText("Цвет: " + String.format("%h",_tracktor.getTracktor().getBodyColor()));
|
||||
|
||||
repaint();
|
||||
});
|
||||
|
||||
@ -69,6 +73,17 @@ public class FormTracktor extends JFrame {
|
||||
repaint();
|
||||
}
|
||||
});
|
||||
|
||||
pictureBox.addComponentListener(new ComponentAdapter() {
|
||||
@Override
|
||||
public void componentResized(ComponentEvent e) {
|
||||
super.componentResized(e);
|
||||
if (_tracktor != null){
|
||||
_tracktor.ChangeBorders(e.getComponent().getWidth(), e.getComponent().getHeight());
|
||||
repaint();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
5
RollersCount.java
Normal file
5
RollersCount.java
Normal file
@ -0,0 +1,5 @@
|
||||
public enum RollersCount {
|
||||
Four,
|
||||
Five,
|
||||
Six
|
||||
}
|
Loading…
Reference in New Issue
Block a user