Готовая 5 лабораторная
This commit is contained in:
parent
230f260f8b
commit
7106475dce
@ -13,6 +13,14 @@ public class DrawingDumpTruck extends DrawingTruck {
|
|||||||
setEntityTruck(new EntityDumpTruck(speed, weight, bodyColor, tent, dumpBox, tentColor, dumpBoxColor));
|
setEntityTruck(new EntityDumpTruck(speed, weight, bodyColor, tent, dumpBox, tentColor, dumpBoxColor));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
public DrawingDumpTruck(int speed, double weight, Color bodyColor, boolean tent, boolean dumpBox, Color tentColor, Color dumpBoxColor, int width, int height, int wheelNumber, IDrawingWheels iDrawingWheels)
|
||||||
|
{
|
||||||
|
super(speed, weight, bodyColor, width, height, wheelNumber, iDrawingWheels);
|
||||||
|
if (getEntityTruck() != null)
|
||||||
|
{
|
||||||
|
setEntityTruck(new EntityDumpTruck(speed, weight, bodyColor, tent, dumpBox, tentColor, dumpBoxColor));
|
||||||
|
}
|
||||||
|
}
|
||||||
public DrawingDumpTruck(EntityDumpTruck entityDumpTruck, int width, int height, int wheelNumber, IDrawingWheels iDrawingWheels)
|
public DrawingDumpTruck(EntityDumpTruck entityDumpTruck, int width, int height, int wheelNumber, IDrawingWheels iDrawingWheels)
|
||||||
{
|
{
|
||||||
super(entityDumpTruck, width, height, wheelNumber, iDrawingWheels);
|
super(entityDumpTruck, width, height, wheelNumber, iDrawingWheels);
|
||||||
|
@ -9,7 +9,7 @@ import DumpTruck.MovementStrategy.*;
|
|||||||
import DumpTruck.Wheels.*;
|
import DumpTruck.Wheels.*;
|
||||||
|
|
||||||
public class DrawingTruck {
|
public class DrawingTruck {
|
||||||
private EntityTruck entityTruck;
|
public EntityTruck entityTruck;
|
||||||
|
|
||||||
public EntityTruck getEntityTruck() {
|
public EntityTruck getEntityTruck() {
|
||||||
return entityTruck;
|
return entityTruck;
|
||||||
@ -19,10 +19,10 @@ public class DrawingTruck {
|
|||||||
this.entityTruck = entityTruck;
|
this.entityTruck = entityTruck;
|
||||||
}
|
}
|
||||||
|
|
||||||
private IDrawingWheels drawingWheels;
|
public IDrawingWheels drawingWheels;
|
||||||
|
|
||||||
private int _pictureWidth;
|
public int _pictureWidth;
|
||||||
private int _pictureHeight;
|
public int _pictureHeight;
|
||||||
protected int _startPosX;
|
protected int _startPosX;
|
||||||
protected int _startPosY;
|
protected int _startPosY;
|
||||||
protected int _truckWidth = 160;
|
protected int _truckWidth = 160;
|
||||||
@ -65,6 +65,18 @@ public class DrawingTruck {
|
|||||||
drawingWheels.setWheelNumber(wheelNumber);
|
drawingWheels.setWheelNumber(wheelNumber);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public DrawingTruck(int speed, double weight, Color bodyColor, int width, int height, int wheelNumber, IDrawingWheels iDrawingWheels)
|
||||||
|
{
|
||||||
|
if (height < _truckHeight || width < _truckWidth) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
_pictureWidth = width;
|
||||||
|
_pictureHeight = height;
|
||||||
|
entityTruck = new EntityTruck(speed, weight, bodyColor);
|
||||||
|
drawingWheels = iDrawingWheels;
|
||||||
|
drawingWheels.setWheelNumber(wheelNumber);
|
||||||
|
}
|
||||||
|
|
||||||
protected DrawingTruck(int speed, double weight, Color bodyColor, int width, int height, int truckWidth, int truckHeight, int wheelNumber)
|
protected DrawingTruck(int speed, double weight, Color bodyColor, int width, int height, int truckWidth, int truckHeight, int wheelNumber)
|
||||||
{
|
{
|
||||||
if (width < truckWidth || height < truckHeight) return;
|
if (width < truckWidth || height < truckHeight) return;
|
||||||
|
@ -20,13 +20,16 @@ public class EntityDumpTruck extends EntityTruck {
|
|||||||
public Color getDumpBoxColor() {
|
public Color getDumpBoxColor() {
|
||||||
return DumpBoxColor;
|
return DumpBoxColor;
|
||||||
}
|
}
|
||||||
|
public void setDumpBoxColor(Color color) {
|
||||||
|
DumpBoxColor = color;
|
||||||
|
}
|
||||||
private Color TentColor;
|
private Color TentColor;
|
||||||
|
|
||||||
public Color getTentColor() {
|
public Color getTentColor() {
|
||||||
return TentColor;
|
return TentColor;
|
||||||
}
|
}
|
||||||
|
public void setTentColor(Color color) {
|
||||||
|
TentColor = color;
|
||||||
|
}
|
||||||
public EntityDumpTruck(int speed, double weight, Color bodyColor, boolean tent, boolean dumpBox, Color tentColor, Color dumpBoxColor) {
|
public EntityDumpTruck(int speed, double weight, Color bodyColor, boolean tent, boolean dumpBox, Color tentColor, Color dumpBoxColor) {
|
||||||
super(speed, weight, bodyColor);
|
super(speed, weight, bodyColor);
|
||||||
Tent = tent;
|
Tent = tent;
|
||||||
|
@ -21,6 +21,9 @@ public class EntityTruck
|
|||||||
public Color getBodyColor() {
|
public Color getBodyColor() {
|
||||||
return BodyColor;
|
return BodyColor;
|
||||||
}
|
}
|
||||||
|
public void setBodyColor(Color color) {
|
||||||
|
BodyColor = color;
|
||||||
|
}
|
||||||
|
|
||||||
public double getStep() {
|
public double getStep() {
|
||||||
return (double)Speed * 100 / Weight;
|
return (double)Speed * 100 / Weight;
|
||||||
|
17
src/DumpTruck/FrameTruckConfig.java
Normal file
17
src/DumpTruck/FrameTruckConfig.java
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
package DumpTruck;
|
||||||
|
|
||||||
|
import javax.swing.*;
|
||||||
|
|
||||||
|
public class FrameTruckConfig extends JFrame {
|
||||||
|
|
||||||
|
public PictureBoxTruckConfig pictureBoxTruckConfig;
|
||||||
|
|
||||||
|
public FrameTruckConfig() {
|
||||||
|
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
|
||||||
|
pictureBoxTruckConfig = new PictureBoxTruckConfig();
|
||||||
|
add(pictureBoxTruckConfig);
|
||||||
|
pack();
|
||||||
|
setLocationRelativeTo(null);
|
||||||
|
setVisible(true);
|
||||||
|
}
|
||||||
|
}
|
@ -61,6 +61,8 @@ public class TrucksGenericCollection<T extends DrawingTruck, U extends IMoveable
|
|||||||
for (T truck : _collection.GetTrucks(100)) {
|
for (T truck : _collection.GetTrucks(100)) {
|
||||||
if (truck != null)
|
if (truck != null)
|
||||||
{
|
{
|
||||||
|
truck._pictureWidth = _pictureWidth;
|
||||||
|
truck._pictureHeight = _pictureHeight;
|
||||||
truck.SetPosition(index % (_pictureWidth / _placeSizeWidth) * _placeSizeWidth, index / (_pictureWidth / _placeSizeWidth) * _placeSizeHeight);
|
truck.SetPosition(index % (_pictureWidth / _placeSizeWidth) * _placeSizeWidth, index / (_pictureWidth / _placeSizeWidth) * _placeSizeHeight);
|
||||||
truck.DrawTransport((Graphics2D) g);
|
truck.DrawTransport((Graphics2D) g);
|
||||||
}
|
}
|
||||||
|
@ -99,17 +99,18 @@ public class PictureBoxCollection extends JPanel {
|
|||||||
var obj = _storage.get(listStorage.getSelectedValue());
|
var obj = _storage.get(listStorage.getSelectedValue());
|
||||||
if (obj == null)
|
if (obj == null)
|
||||||
return;
|
return;
|
||||||
FrameDumpTruck frameDumpTruck = new FrameDumpTruck(null);
|
FrameTruckConfig frameTruckConfig = new FrameTruckConfig();
|
||||||
frameDumpTruck.pictureBoxDumpTruck.buttonSelectTruck.addActionListener(e1 -> {
|
frameTruckConfig.pictureBoxTruckConfig.buttonAdd.addActionListener(e1 -> {
|
||||||
if (obj.Add(frameDumpTruck.pictureBoxDumpTruck.drawingTruck) != -1) {
|
if (obj != null && obj.Add(frameTruckConfig.pictureBoxTruckConfig._truck) != -1) {
|
||||||
JOptionPane.showMessageDialog(null, "Объект добавлен", "Информация", JOptionPane.INFORMATION_MESSAGE);
|
JOptionPane.showMessageDialog(null, "Объект добавлен", "Информация", JOptionPane.INFORMATION_MESSAGE);
|
||||||
} else {
|
} else {
|
||||||
JOptionPane.showMessageDialog(null, "Не удалось добавить объект", "Информация", JOptionPane.INFORMATION_MESSAGE);
|
JOptionPane.showMessageDialog(null, "Не удалось добавить объект", "Информация", JOptionPane.INFORMATION_MESSAGE);
|
||||||
}
|
}
|
||||||
frameDumpTruck.dispose();
|
frameTruckConfig.dispose();
|
||||||
repaint();
|
repaint();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
frameTruckConfig.pictureBoxTruckConfig.buttonCancel.addActionListener(e1 -> frameTruckConfig.dispose());
|
||||||
});
|
});
|
||||||
add(buttonAddTruck);
|
add(buttonAddTruck);
|
||||||
|
|
||||||
|
484
src/DumpTruck/PictureBoxTruckConfig.java
Normal file
484
src/DumpTruck/PictureBoxTruckConfig.java
Normal file
@ -0,0 +1,484 @@
|
|||||||
|
package DumpTruck;
|
||||||
|
|
||||||
|
import javax.swing.*;
|
||||||
|
import javax.swing.border.Border;
|
||||||
|
import java.awt.*;
|
||||||
|
import java.awt.datatransfer.DataFlavor;
|
||||||
|
import java.awt.datatransfer.StringSelection;
|
||||||
|
import java.awt.datatransfer.Transferable;
|
||||||
|
import java.awt.datatransfer.UnsupportedFlavorException;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.Random;
|
||||||
|
import DumpTruck.DrawingObjects.*;
|
||||||
|
import DumpTruck.Entities.EntityDumpTruck;
|
||||||
|
import DumpTruck.Entities.EntityTruck;
|
||||||
|
import DumpTruck.Wheels.DrawingWheels;
|
||||||
|
import DumpTruck.Wheels.DrawingWheelsCircles;
|
||||||
|
import DumpTruck.Wheels.DrawingWheelsStar;
|
||||||
|
import DumpTruck.Wheels.IDrawingWheels;
|
||||||
|
|
||||||
|
import java.awt.event.*;
|
||||||
|
|
||||||
|
public class PictureBoxTruckConfig extends JPanel {
|
||||||
|
private class LabelTransferHandler extends TransferHandler {
|
||||||
|
@Override
|
||||||
|
public int getSourceActions(JComponent c) {
|
||||||
|
return TransferHandler.COPY;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Transferable createTransferable(JComponent c) {
|
||||||
|
return new StringSelection(((JLabel)c).getText());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private class ColorTransferable implements Transferable {
|
||||||
|
private Color color;
|
||||||
|
private static final DataFlavor colorDataFlavor = new DataFlavor(Color.class, "Color");
|
||||||
|
|
||||||
|
public ColorTransferable(Color color) {
|
||||||
|
this.color = color;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DataFlavor[] getTransferDataFlavors() {
|
||||||
|
return new DataFlavor[]{colorDataFlavor};
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isDataFlavorSupported(DataFlavor flavor) {
|
||||||
|
return colorDataFlavor.equals(flavor);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException {
|
||||||
|
if (isDataFlavorSupported(flavor)) {
|
||||||
|
return color;
|
||||||
|
} else {
|
||||||
|
throw new UnsupportedFlavorException(flavor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private class PanelTransferHandler extends TransferHandler {
|
||||||
|
@Override
|
||||||
|
public int getSourceActions(JComponent c) {
|
||||||
|
return TransferHandler.COPY;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Transferable createTransferable(JComponent c) {
|
||||||
|
return new ColorTransferable(((JPanel)c).getBackground());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private class LabelMouseAdapter extends MouseAdapter{
|
||||||
|
@Override
|
||||||
|
public void mousePressed(MouseEvent e) {
|
||||||
|
((JLabel)e.getComponent()).getTransferHandler().exportAsDrag(((JLabel)e.getComponent()), e, TransferHandler.COPY);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private class PanelMouseAdapter extends MouseAdapter{
|
||||||
|
@Override
|
||||||
|
public void mousePressed(MouseEvent e) {
|
||||||
|
((JPanel)e.getComponent()).getTransferHandler().exportAsDrag(((JPanel)e.getComponent()), e, TransferHandler.COPY);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private class WheelTransferable implements Transferable {
|
||||||
|
private IDrawingWheels wheelDrawing;
|
||||||
|
private static final DataFlavor wheelDrawingDataFlavor = new DataFlavor(IDrawingWheels.class, "Wheel Drawing");
|
||||||
|
|
||||||
|
public WheelTransferable(IDrawingWheels wheelDrawing) {
|
||||||
|
this.wheelDrawing = wheelDrawing;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DataFlavor[] getTransferDataFlavors() {
|
||||||
|
return new DataFlavor[]{wheelDrawingDataFlavor};
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isDataFlavorSupported(DataFlavor flavor) {
|
||||||
|
return flavor.equals(wheelDrawingDataFlavor);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException {
|
||||||
|
if (isDataFlavorSupported(flavor)) {
|
||||||
|
return wheelDrawing;
|
||||||
|
} else {
|
||||||
|
throw new UnsupportedFlavorException(flavor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private class WheelPanel extends JPanel{
|
||||||
|
public IDrawingWheels wheelDrawing;
|
||||||
|
|
||||||
|
public WheelPanel(IDrawingWheels _wheelDrawing){
|
||||||
|
wheelDrawing = _wheelDrawing;
|
||||||
|
wheelDrawing.setWheelNumber(2);
|
||||||
|
this.addMouseListener(
|
||||||
|
new MouseAdapter(){
|
||||||
|
@Override
|
||||||
|
public void mousePressed(MouseEvent e) {
|
||||||
|
((WheelPanel)e.getComponent()).getTransferHandler().exportAsDrag(((WheelPanel)e.getComponent()), e, TransferHandler.COPY);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
this.setTransferHandler(
|
||||||
|
new TransferHandler(){
|
||||||
|
@Override
|
||||||
|
public int getSourceActions(JComponent c) {
|
||||||
|
return TransferHandler.COPY;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Transferable createTransferable(JComponent c) {
|
||||||
|
return new WheelTransferable(((WheelPanel)c).wheelDrawing);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void paintComponent (Graphics g){
|
||||||
|
super.paintComponents (g) ;
|
||||||
|
Graphics2D g2d = (Graphics2D)g;
|
||||||
|
wheelDrawing.drawWheels(g2d,Color.BLACK,0, -50);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private class TruckPreview extends JPanel{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void paintComponent (Graphics g) {
|
||||||
|
if (_truck == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
_truck.SetPosition(20, 20);
|
||||||
|
super.paintComponent(g);
|
||||||
|
Graphics2D g2d = (Graphics2D) g;
|
||||||
|
_truck.DrawTransport(g2d);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
DrawingTruck _truck = null;
|
||||||
|
JButton buttonAdd, buttonCancel;
|
||||||
|
JLabel labelParameters, labelColors, labelSpeed, labelWeight, labelWheelAmount, labelSimpleObject, labelModifiedObject, labelBodyColor, labelDumboxColor, labelTentColor, labelWheels, labelWheelPreview;
|
||||||
|
JCheckBox checkBoxTent, checkBoxDumpBox;
|
||||||
|
SpinnerModel spinnerModelSpeed, spinnerModelWeight, spinnerModelWheelAmount;
|
||||||
|
JSpinner numericUpDownSpeed, numericUpDownWeight, numericUpDownWheelAmount;
|
||||||
|
JPanel panelRed, panelGreen, panelBlue, panelYellow, panelWhite, panelGray, panelBlack, panelMagenta;
|
||||||
|
TruckPreview truckPreview;
|
||||||
|
public PictureBoxTruckConfig() {
|
||||||
|
Random random = new Random();
|
||||||
|
setLayout(null);
|
||||||
|
setBounds(0, 0, 800, 300);
|
||||||
|
buttonAdd = new JButton("Добавить");
|
||||||
|
buttonAdd.setFocusable(false);
|
||||||
|
buttonAdd.setBounds(550, 260, 100, 30);
|
||||||
|
add(buttonAdd);
|
||||||
|
|
||||||
|
buttonCancel = new JButton("Отмена");
|
||||||
|
buttonCancel.setFocusable(false);
|
||||||
|
buttonCancel.setBounds(670, 260, 100, 30);
|
||||||
|
add(buttonCancel);
|
||||||
|
|
||||||
|
labelParameters = new JLabel("Параметры");
|
||||||
|
labelParameters.setBounds(10, 10, 100, 20);
|
||||||
|
add(labelParameters);
|
||||||
|
|
||||||
|
labelSpeed = new JLabel("Скорость:");
|
||||||
|
labelSpeed.setBounds(10, 50, 100, 20);
|
||||||
|
add(labelSpeed);
|
||||||
|
|
||||||
|
labelWeight = new JLabel("Вес:");
|
||||||
|
labelWeight.setBounds(10, 80, 100, 20);
|
||||||
|
add(labelWeight);
|
||||||
|
|
||||||
|
labelWheelAmount = new JLabel("Кол-во колес:");
|
||||||
|
labelWheelAmount.setBounds(10, 110, 100, 20);
|
||||||
|
add(labelWheelAmount);
|
||||||
|
|
||||||
|
checkBoxTent = new JCheckBox("Признак наличия кузова");
|
||||||
|
checkBoxTent.setBounds(10, 200, 200, 20);
|
||||||
|
checkBoxTent.setFocusable(false);
|
||||||
|
add(checkBoxTent);
|
||||||
|
|
||||||
|
checkBoxDumpBox = new JCheckBox("Признак наличия тента");
|
||||||
|
checkBoxDumpBox.setBounds(10, 230, 200, 20);
|
||||||
|
checkBoxDumpBox.setFocusable(false);
|
||||||
|
add(checkBoxDumpBox);
|
||||||
|
|
||||||
|
spinnerModelSpeed = new SpinnerNumberModel(100, 100, 1000, 1);
|
||||||
|
numericUpDownSpeed = new JSpinner(spinnerModelSpeed);
|
||||||
|
numericUpDownSpeed.setBounds(100, 50, 50, 20);
|
||||||
|
numericUpDownSpeed.setFocusable(false);
|
||||||
|
add(numericUpDownSpeed);
|
||||||
|
|
||||||
|
spinnerModelWeight = new SpinnerNumberModel(100, 100, 1000, 1);
|
||||||
|
numericUpDownWeight = new JSpinner(spinnerModelWeight);
|
||||||
|
numericUpDownWeight.setBounds(100, 80, 50, 20);
|
||||||
|
numericUpDownWeight.setFocusable(false);
|
||||||
|
add(numericUpDownWeight);
|
||||||
|
|
||||||
|
spinnerModelWheelAmount = new SpinnerNumberModel(2, 2, 4, 1);
|
||||||
|
numericUpDownWheelAmount = new JSpinner(spinnerModelWheelAmount);
|
||||||
|
numericUpDownWheelAmount.setBounds(100, 110, 50, 20);
|
||||||
|
numericUpDownWheelAmount.setFocusable(false);
|
||||||
|
add(numericUpDownWheelAmount);
|
||||||
|
|
||||||
|
labelColors = new JLabel("Цвета");
|
||||||
|
labelColors.setBounds(250, 20, 100, 20);
|
||||||
|
add(labelColors);
|
||||||
|
|
||||||
|
Border border = BorderFactory.createLineBorder(Color.BLACK);
|
||||||
|
|
||||||
|
labelSimpleObject = new JLabel("Простой");
|
||||||
|
labelSimpleObject.setBounds(250, 240, 100, 50);
|
||||||
|
labelSimpleObject.setHorizontalAlignment(SwingConstants.CENTER);
|
||||||
|
labelSimpleObject.setBorder(border);
|
||||||
|
labelSimpleObject.setTransferHandler(new LabelTransferHandler());
|
||||||
|
labelSimpleObject.addMouseListener(new LabelMouseAdapter());
|
||||||
|
add(labelSimpleObject);
|
||||||
|
|
||||||
|
labelModifiedObject = new JLabel("Продвинутый");
|
||||||
|
labelModifiedObject.setBounds(370, 240, 100, 50);
|
||||||
|
labelModifiedObject.setHorizontalAlignment(SwingConstants.CENTER);
|
||||||
|
labelModifiedObject.setBorder(border);
|
||||||
|
labelModifiedObject.setTransferHandler(new LabelTransferHandler());
|
||||||
|
labelModifiedObject.addMouseListener(new LabelMouseAdapter());
|
||||||
|
add(labelModifiedObject);
|
||||||
|
|
||||||
|
labelBodyColor = new JLabel("Цвет");
|
||||||
|
labelBodyColor.setBounds(530, 20, 80, 40);
|
||||||
|
labelBodyColor.setHorizontalAlignment(SwingConstants.CENTER);
|
||||||
|
labelBodyColor.setBorder(border);
|
||||||
|
labelBodyColor.setTransferHandler(
|
||||||
|
new TransferHandler(){
|
||||||
|
@Override
|
||||||
|
public boolean canImport(TransferHandler.TransferSupport support) {
|
||||||
|
return support.isDataFlavorSupported(ColorTransferable.colorDataFlavor);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean importData(TransferHandler.TransferSupport support) {
|
||||||
|
if (canImport(support)) {
|
||||||
|
try {
|
||||||
|
Color color = (Color) support.getTransferable().getTransferData(ColorTransferable.colorDataFlavor);
|
||||||
|
if (_truck == null)
|
||||||
|
return false;
|
||||||
|
_truck.entityTruck.setBodyColor(color);
|
||||||
|
truckPreview.repaint();
|
||||||
|
return true;
|
||||||
|
} catch (UnsupportedFlavorException | IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
add(labelBodyColor);
|
||||||
|
|
||||||
|
labelDumboxColor = new JLabel("Цвет кузова");
|
||||||
|
labelDumboxColor.setBounds(620, 20, 80, 40);
|
||||||
|
labelDumboxColor.setHorizontalAlignment(SwingConstants.CENTER);
|
||||||
|
labelDumboxColor.setBorder(border);
|
||||||
|
labelDumboxColor.setTransferHandler(
|
||||||
|
new TransferHandler(){
|
||||||
|
@Override
|
||||||
|
public boolean canImport(TransferHandler.TransferSupport support) {
|
||||||
|
return support.isDataFlavorSupported(ColorTransferable.colorDataFlavor);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean importData(TransferHandler.TransferSupport support) {
|
||||||
|
if (canImport(support)) {
|
||||||
|
try {
|
||||||
|
Color color = (Color) support.getTransferable().getTransferData(ColorTransferable.colorDataFlavor);
|
||||||
|
if (_truck == null)
|
||||||
|
return false;
|
||||||
|
if (!(_truck instanceof DrawingDumpTruck))
|
||||||
|
return false;
|
||||||
|
((EntityDumpTruck)_truck.entityTruck).setDumpBoxColor(color);
|
||||||
|
truckPreview.repaint();
|
||||||
|
return true;
|
||||||
|
} catch (UnsupportedFlavorException | IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
add(labelDumboxColor);
|
||||||
|
|
||||||
|
labelTentColor = new JLabel("Цвет тента");
|
||||||
|
labelTentColor.setBounds(710, 20, 80, 40);
|
||||||
|
labelTentColor.setHorizontalAlignment(SwingConstants.CENTER);
|
||||||
|
labelTentColor.setBorder(border);
|
||||||
|
labelTentColor.setTransferHandler(
|
||||||
|
new TransferHandler(){
|
||||||
|
@Override
|
||||||
|
public boolean canImport(TransferHandler.TransferSupport support) {
|
||||||
|
return support.isDataFlavorSupported(ColorTransferable.colorDataFlavor);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean importData(TransferHandler.TransferSupport support) {
|
||||||
|
if (canImport(support)) {
|
||||||
|
try {
|
||||||
|
Color color = (Color) support.getTransferable().getTransferData(ColorTransferable.colorDataFlavor);
|
||||||
|
if (_truck == null)
|
||||||
|
return false;
|
||||||
|
if (!(_truck instanceof DrawingDumpTruck))
|
||||||
|
return false;
|
||||||
|
((EntityDumpTruck)_truck.entityTruck).setTentColor(color);
|
||||||
|
truckPreview.repaint();
|
||||||
|
return true;
|
||||||
|
} catch (UnsupportedFlavorException | IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
add(labelTentColor);
|
||||||
|
|
||||||
|
labelWheelPreview = new JLabel("Колесо");
|
||||||
|
labelWheelPreview.setBounds(530, 70, 80, 30);
|
||||||
|
labelWheelPreview.setHorizontalAlignment(SwingConstants.CENTER);
|
||||||
|
labelWheelPreview.setBorder(border);
|
||||||
|
add(labelWheelPreview);
|
||||||
|
labelWheelPreview.setTransferHandler(
|
||||||
|
new TransferHandler(){
|
||||||
|
@Override
|
||||||
|
public boolean canImport(TransferHandler.TransferSupport support) {
|
||||||
|
return support.isDataFlavorSupported(WheelTransferable.wheelDrawingDataFlavor);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean importData(TransferHandler.TransferSupport support) {
|
||||||
|
if (canImport(support)) {
|
||||||
|
try {
|
||||||
|
IDrawingWheels iDrawingWheels = (IDrawingWheels) support.getTransferable().getTransferData(WheelTransferable.wheelDrawingDataFlavor);
|
||||||
|
if (_truck == null)
|
||||||
|
return false;
|
||||||
|
_truck.drawingWheels = iDrawingWheels;
|
||||||
|
_truck.drawingWheels.setWheelNumber((int)numericUpDownWheelAmount.getValue());
|
||||||
|
truckPreview.repaint();
|
||||||
|
} catch (UnsupportedFlavorException | IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
panelRed = new JPanel();
|
||||||
|
panelRed.setBounds(250, 50, 40, 40);
|
||||||
|
panelRed.setBackground(Color.RED);
|
||||||
|
panelRed.setTransferHandler(new PanelTransferHandler());
|
||||||
|
panelRed.addMouseListener(new PanelMouseAdapter());
|
||||||
|
add(panelRed);
|
||||||
|
|
||||||
|
panelGreen = new JPanel();
|
||||||
|
panelGreen.setBounds(300, 50, 40, 40);
|
||||||
|
panelGreen.setBackground(Color.GREEN);
|
||||||
|
panelGreen.setTransferHandler(new PanelTransferHandler());
|
||||||
|
panelGreen.addMouseListener(new PanelMouseAdapter());
|
||||||
|
add(panelGreen);
|
||||||
|
|
||||||
|
panelBlue = new JPanel();
|
||||||
|
panelBlue.setBounds(350, 50, 40, 40);
|
||||||
|
panelBlue.setBackground(Color.BLUE);
|
||||||
|
panelBlue.setTransferHandler(new PanelTransferHandler());
|
||||||
|
panelBlue.addMouseListener(new PanelMouseAdapter());
|
||||||
|
add(panelBlue);
|
||||||
|
|
||||||
|
panelYellow = new JPanel();
|
||||||
|
panelYellow.setBounds(400, 50, 40, 40);
|
||||||
|
panelYellow.setBackground(Color.YELLOW);
|
||||||
|
panelYellow.setTransferHandler(new PanelTransferHandler());
|
||||||
|
panelYellow.addMouseListener(new PanelMouseAdapter());
|
||||||
|
add(panelYellow);
|
||||||
|
|
||||||
|
panelWhite = new JPanel();
|
||||||
|
panelWhite.setBounds(250, 100, 40, 40);
|
||||||
|
panelWhite.setBackground(Color.WHITE);
|
||||||
|
panelWhite.setTransferHandler(new PanelTransferHandler());
|
||||||
|
panelWhite.addMouseListener(new PanelMouseAdapter());
|
||||||
|
add(panelWhite);
|
||||||
|
|
||||||
|
panelGray = new JPanel();
|
||||||
|
panelGray.setBounds(300, 100, 40, 40);
|
||||||
|
panelGray.setBackground(Color.GRAY);
|
||||||
|
panelGray.setTransferHandler(new PanelTransferHandler());
|
||||||
|
panelGray.addMouseListener(new PanelMouseAdapter());
|
||||||
|
add(panelGray);
|
||||||
|
|
||||||
|
panelBlack = new JPanel();
|
||||||
|
panelBlack.setBounds(350, 100, 40, 40);
|
||||||
|
panelBlack.setBackground(Color.black);
|
||||||
|
panelBlack.setTransferHandler(new PanelTransferHandler());
|
||||||
|
panelBlack.addMouseListener(new PanelMouseAdapter());
|
||||||
|
add(panelBlack);
|
||||||
|
|
||||||
|
panelMagenta = new JPanel();
|
||||||
|
panelMagenta.setBounds(400, 100, 40, 40);
|
||||||
|
panelMagenta.setBackground(Color.MAGENTA);
|
||||||
|
panelMagenta.setTransferHandler(new PanelTransferHandler());
|
||||||
|
panelMagenta.addMouseListener(new PanelMouseAdapter());
|
||||||
|
add(panelMagenta);
|
||||||
|
|
||||||
|
labelWheels = new JLabel("Колеса");
|
||||||
|
labelWheels.setBounds(250, 150, 100, 20);
|
||||||
|
add(labelWheels);
|
||||||
|
WheelPanel wheelPanelDefault = new WheelPanel(new DrawingWheels());
|
||||||
|
wheelPanelDefault.setBounds(250, 180, 40, 40);
|
||||||
|
add(wheelPanelDefault);
|
||||||
|
WheelPanel wheelPanelCircles = new WheelPanel(new DrawingWheelsCircles());
|
||||||
|
wheelPanelCircles.setBounds(300, 180, 40, 40);
|
||||||
|
add(wheelPanelCircles);
|
||||||
|
WheelPanel wheelPanelStar = new WheelPanel(new DrawingWheelsStar());
|
||||||
|
wheelPanelStar.setBounds(350, 180, 40, 40);
|
||||||
|
add(wheelPanelStar);
|
||||||
|
|
||||||
|
truckPreview = new TruckPreview();
|
||||||
|
truckPreview.setBounds(530, 110, 260, 140);
|
||||||
|
truckPreview.setBorder(border);
|
||||||
|
add(truckPreview);
|
||||||
|
truckPreview.setTransferHandler(
|
||||||
|
new TransferHandler(){
|
||||||
|
@Override
|
||||||
|
public boolean canImport(TransferHandler.TransferSupport support) {
|
||||||
|
return support.isDataFlavorSupported(DataFlavor.stringFlavor);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean importData(TransferHandler.TransferSupport support) {
|
||||||
|
if (canImport(support)) {
|
||||||
|
try {
|
||||||
|
String data = (String) support.getTransferable().getTransferData(DataFlavor.stringFlavor);
|
||||||
|
switch (data) {
|
||||||
|
case "Простой":
|
||||||
|
_truck = new DrawingTruck((int)numericUpDownSpeed.getValue(), (int)numericUpDownWeight.getValue(), Color.WHITE, truckPreview.getWidth(), truckPreview.getHeight(), (int)numericUpDownWheelAmount.getValue(), new DrawingWheels());
|
||||||
|
break;
|
||||||
|
case "Продвинутый":
|
||||||
|
_truck = new DrawingDumpTruck((int)numericUpDownSpeed.getValue(), (int)numericUpDownWeight.getValue(), Color.WHITE, checkBoxDumpBox.isSelected(), checkBoxTent.isSelected(), Color.BLACK, Color.GRAY, truckPreview.getWidth(), truckPreview.getHeight(), (int)numericUpDownWheelAmount.getValue(), new DrawingWheels());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
truckPreview.repaint();
|
||||||
|
return true;
|
||||||
|
} catch (UnsupportedFlavorException | IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
setPreferredSize(new Dimension(800, 300));
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user