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 _tracktorWidth = 110; // Ширина отрисовки трактора
|
||||||
private final int _tracktorHeight = 87; // Высота отрисовки трактора
|
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 = new EntityTracktor();
|
||||||
Tracktor.Init(speed, weight, bodyColor);
|
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 + 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.drawLine((int)_startPosX + 110, (int)_startPosY + 65, (int)_startPosX + 110, (int)_startPosY + 75);
|
||||||
|
|
||||||
// Крупные катки
|
drawningRollers.DrawRollers(g,_startPosX, _startPosY);
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Смена границ формы отрисовки
|
// Смена границ формы отрисовки
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.*;
|
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;
|
import java.util.Random;
|
||||||
|
|
||||||
public class FormTracktor extends JFrame {
|
public class FormTracktor extends JFrame {
|
||||||
@ -28,7 +32,8 @@ public class FormTracktor extends JFrame {
|
|||||||
_tracktor.Init(
|
_tracktor.Init(
|
||||||
rnd.nextInt(100, 300),
|
rnd.nextInt(100, 300),
|
||||||
rnd.nextInt(1000, 2000),
|
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(
|
_tracktor.SetPosition(
|
||||||
rnd.nextInt(10, 100),
|
rnd.nextInt(10, 100),
|
||||||
@ -38,7 +43,6 @@ public class FormTracktor extends JFrame {
|
|||||||
speedLabel.setText("Скорость: " + _tracktor.getTracktor().getSpeed());
|
speedLabel.setText("Скорость: " + _tracktor.getTracktor().getSpeed());
|
||||||
weightLabel.setText("Вес: " + _tracktor.getTracktor().getWeight());
|
weightLabel.setText("Вес: " + _tracktor.getTracktor().getWeight());
|
||||||
colorLabel.setText("Цвет: " + String.format("%h",_tracktor.getTracktor().getBodyColor()));
|
colorLabel.setText("Цвет: " + String.format("%h",_tracktor.getTracktor().getBodyColor()));
|
||||||
|
|
||||||
repaint();
|
repaint();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -69,6 +73,17 @@ public class FormTracktor extends JFrame {
|
|||||||
repaint();
|
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
|
@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