Compare commits
11 Commits
FourthLabW
...
SeventhLab
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8ff85461e3 | ||
|
|
1e3c316731 | ||
|
|
760c2721aa | ||
|
|
4e206defed | ||
|
|
5063d4d157 | ||
|
|
54dacb11cf | ||
|
|
6477ad58b7 | ||
|
|
aa5414867c | ||
|
|
da6cf36c9d | ||
|
|
b0f86f1f75 | ||
|
|
3023f5b279 |
9
.vs/VSWorkspaceState.json
Normal file
9
.vs/VSWorkspaceState.json
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"ExpandedNodes": [
|
||||||
|
"",
|
||||||
|
"\\ArmoredVehicle",
|
||||||
|
"\\ArmoredVehicle\\src"
|
||||||
|
],
|
||||||
|
"SelectedNode": "\\ArmoredVehicle\\src\\PolimorphClass.java",
|
||||||
|
"PreviewInSolutionExplorer": false
|
||||||
|
}
|
||||||
BIN
.vs/slnx.sqlite
BIN
.vs/slnx.sqlite
Binary file not shown.
@@ -23,11 +23,11 @@ public class DrawingArmoredVehicle{
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Ширина окна отрисовки
|
/// Ширина окна отрисовки
|
||||||
/// </summary>
|
/// </summary>
|
||||||
protected int _pictureWidth = 0;
|
protected int _pictureWidth = 100;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Высота окна отрисовки
|
/// Высота окна отрисовки
|
||||||
/// </summary>
|
/// </summary>
|
||||||
protected int _pictureHeight = 0;
|
protected int _pictureHeight = 100;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Ширина отрисовки
|
/// Ширина отрисовки
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -50,7 +50,7 @@ public class DrawingArmoredVehicle{
|
|||||||
{
|
{
|
||||||
Random r = new Random();
|
Random r = new Random();
|
||||||
ArmoredVehicle = new ArmoredVehicleEntity(speed, weight, bodyColor);
|
ArmoredVehicle = new ArmoredVehicleEntity(speed, weight, bodyColor);
|
||||||
int variant = r.nextInt(3);
|
int variant = 0;
|
||||||
switch(variant)
|
switch(variant)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
@@ -79,8 +79,8 @@ public class DrawingArmoredVehicle{
|
|||||||
{
|
{
|
||||||
ArmoredVehicle = machine;
|
ArmoredVehicle = machine;
|
||||||
roller = rollers;
|
roller = rollers;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Установка позиции
|
/// Установка позиции
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -42,4 +42,15 @@ private DrawingArmoredVehicle _machine = null;
|
|||||||
{
|
{
|
||||||
return _machine;
|
return _machine;
|
||||||
}
|
}
|
||||||
|
public static IDrawingObject Create(String data){
|
||||||
|
return new DrawingObject(ExtentionMachine.CreateDrawingMachine(data));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String GetInfo() {
|
||||||
|
if (_machine != null){
|
||||||
|
return ExtentionMachine.GetDataForSave(_machine);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
75
ArmoredVehicle/src/ExtentionMachine.java
Normal file
75
ArmoredVehicle/src/ExtentionMachine.java
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
|
||||||
|
import java.awt.Color;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
||||||
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Alena
|
||||||
|
*/
|
||||||
|
public class ExtentionMachine {
|
||||||
|
private static final char _separatorForObject = ':';
|
||||||
|
public static DrawingArmoredVehicle CreateDrawingMachine(String info)
|
||||||
|
{
|
||||||
|
String[] strs = info.split(String.valueOf(_separatorForObject));
|
||||||
|
Color color;
|
||||||
|
if (strs.length == 5)
|
||||||
|
{
|
||||||
|
var temp = new DrawingArmoredVehicle(Integer.parseInt(strs[0]),
|
||||||
|
Float.parseFloat(strs[1]), new Color(Integer.parseInt(strs[2])));
|
||||||
|
color = new Color(Integer.parseInt(strs[2]));
|
||||||
|
temp.Count = Integer.parseInt(strs[4]);
|
||||||
|
|
||||||
|
switch (strs[3])
|
||||||
|
{
|
||||||
|
case "DrawingRollers":
|
||||||
|
temp.roller = new Roller(color);
|
||||||
|
break;
|
||||||
|
case "DrawingLinePatternRoller":
|
||||||
|
temp.roller = new DrawingFirstRoller(color);
|
||||||
|
break;
|
||||||
|
case "DrawingPiePatternRoller":
|
||||||
|
temp.roller = new DrawingSecondRoller(color);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return temp;
|
||||||
|
}
|
||||||
|
if (strs.length == 8)
|
||||||
|
{
|
||||||
|
color = new Color(Integer.parseInt(strs[2]));
|
||||||
|
var temp = new DrawingTank(Integer.parseInt(strs[0]),
|
||||||
|
Float.parseFloat(strs[1]), new Color(Integer.parseInt(strs[2])),
|
||||||
|
new Color(Integer.parseInt(strs[5])), Boolean.parseBoolean(strs[6]),
|
||||||
|
Boolean.parseBoolean(strs[7]));
|
||||||
|
temp.Count = Integer.parseInt(strs[4]);
|
||||||
|
switch (strs[3])
|
||||||
|
{
|
||||||
|
case "DrawingRollers":
|
||||||
|
temp.roller = new Roller(color);
|
||||||
|
break;
|
||||||
|
case "DrawingLinePatternRoller":
|
||||||
|
temp.roller = new DrawingFirstRoller(color);
|
||||||
|
break;
|
||||||
|
case "DrawingPiePatternRoller":
|
||||||
|
temp.roller = new DrawingSecondRoller(color);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return temp;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
public static String GetDataForSave(DrawingArmoredVehicle drawingMachine)
|
||||||
|
{
|
||||||
|
var machine = drawingMachine.ArmoredVehicle;
|
||||||
|
var str = ""+machine.Speed + _separatorForObject + machine.Weight + _separatorForObject + machine.BodyColor.getRGB() + _separatorForObject + drawingMachine.roller + _separatorForObject + drawingMachine.Count;
|
||||||
|
if (machine instanceof TankEntity tank)
|
||||||
|
{
|
||||||
|
return str + _separatorForObject + tank.DopColor.getRGB() + _separatorForObject + tank.MachineGun + _separatorForObject + tank.Tower;
|
||||||
|
}
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
}
|
||||||
599
ArmoredVehicle/src/FormArmoredVehicleConfig.form
Normal file
599
ArmoredVehicle/src/FormArmoredVehicleConfig.form
Normal file
@@ -0,0 +1,599 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
|
||||||
|
<Form version="1.3" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
|
||||||
|
<NonVisualComponents>
|
||||||
|
<Component class="java.awt.Choice" name="choice1">
|
||||||
|
</Component>
|
||||||
|
</NonVisualComponents>
|
||||||
|
<Properties>
|
||||||
|
<Property name="defaultCloseOperation" type="int" value="3"/>
|
||||||
|
</Properties>
|
||||||
|
<SyntheticProperties>
|
||||||
|
<SyntheticProperty name="formSizePolicy" type="int" value="1"/>
|
||||||
|
<SyntheticProperty name="generateCenter" type="boolean" value="false"/>
|
||||||
|
</SyntheticProperties>
|
||||||
|
<AuxValues>
|
||||||
|
<AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
|
||||||
|
<AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
|
||||||
|
<AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
|
||||||
|
<AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
|
||||||
|
<AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
|
||||||
|
<AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
|
||||||
|
<AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
|
||||||
|
<AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
|
||||||
|
<AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
|
||||||
|
</AuxValues>
|
||||||
|
|
||||||
|
<Layout>
|
||||||
|
<DimensionLayout dim="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" alignment="0" attributes="0">
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Component id="panelParams" min="-2" pref="420" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" attributes="0">
|
||||||
|
<Component id="panelObject" max="32767" attributes="0"/>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<Group type="102" attributes="0">
|
||||||
|
<EmptySpace min="10" pref="10" max="-2" attributes="0"/>
|
||||||
|
<Component id="buttonAdd" min="-2" pref="69" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace min="-2" pref="42" max="-2" attributes="0"/>
|
||||||
|
<Component id="buttonCancel" min="-2" pref="70" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace pref="85" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
<DimensionLayout dim="1">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" alignment="0" attributes="0">
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" attributes="0">
|
||||||
|
<Component id="panelObject" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Group type="103" groupAlignment="1" attributes="0">
|
||||||
|
<Component id="buttonAdd" min="-2" max="-2" attributes="0"/>
|
||||||
|
<Component id="buttonCancel" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
<Component id="panelParams" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<EmptySpace max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
</Layout>
|
||||||
|
<SubComponents>
|
||||||
|
<Container class="java.awt.Panel" name="panelParams">
|
||||||
|
|
||||||
|
<Layout>
|
||||||
|
<DimensionLayout dim="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" attributes="0">
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" alignment="0" attributes="0">
|
||||||
|
<Component id="checkboxGun" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace min="-2" pref="54" max="-2" attributes="0"/>
|
||||||
|
<Component id="LabelSimple" min="-2" pref="67" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace min="-2" pref="27" max="-2" attributes="0"/>
|
||||||
|
<Component id="LabelModify" min="-2" pref="87" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<Group type="102" alignment="0" attributes="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Component id="labelParams" alignment="0" min="-2" max="-2" attributes="0"/>
|
||||||
|
<Group type="102" alignment="0" attributes="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Component id="labelSpeed" alignment="0" min="-2" max="-2" attributes="0"/>
|
||||||
|
<Component id="labelWeight" alignment="0" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Component id="SpinnerWeight" min="-2" max="-2" attributes="0"/>
|
||||||
|
<Component id="SpinnerSpeed" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
<Group type="102" alignment="0" attributes="0">
|
||||||
|
<Component id="LabelCountRollers" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
||||||
|
<Component id="ComboBoxCountRollers" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Component id="panelColors" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<Group type="102" alignment="0" attributes="0">
|
||||||
|
<Group type="103" groupAlignment="1" max="-2" attributes="0">
|
||||||
|
<Group type="102" attributes="0">
|
||||||
|
<Component id="LabelFirstRoller" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="32767" attributes="0"/>
|
||||||
|
<Component id="LabelSecondRoller" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<Component id="checkboxTower" alignment="0" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<EmptySpace type="separate" max="-2" attributes="0"/>
|
||||||
|
<Component id="LabelSimpleRollers" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
<EmptySpace max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
<DimensionLayout dim="1">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" alignment="0" attributes="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" attributes="0">
|
||||||
|
<EmptySpace min="-2" pref="34" max="-2" attributes="0"/>
|
||||||
|
<Component id="labelParams" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Component id="labelSpeed" min="-2" max="-2" attributes="0"/>
|
||||||
|
<Component id="SpinnerSpeed" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Component id="labelWeight" min="-2" max="-2" attributes="0"/>
|
||||||
|
<Component id="SpinnerWeight" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Component id="LabelCountRollers" min="-2" max="-2" attributes="0"/>
|
||||||
|
<Component id="ComboBoxCountRollers" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
<Group type="102" alignment="0" attributes="0">
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Component id="panelColors" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Component id="LabelSecondRoller" alignment="0" min="-2" max="-2" attributes="0"/>
|
||||||
|
<Group type="103" groupAlignment="3" attributes="0">
|
||||||
|
<Component id="LabelFirstRoller" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||||
|
<Component id="LabelSimpleRollers" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
<EmptySpace min="-2" pref="12" max="-2" attributes="0"/>
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" attributes="0">
|
||||||
|
<Component id="checkboxTower" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Component id="checkboxGun" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<Group type="102" alignment="0" attributes="0">
|
||||||
|
<EmptySpace min="-2" pref="20" max="-2" attributes="0"/>
|
||||||
|
<Group type="103" groupAlignment="3" attributes="0">
|
||||||
|
<Component id="LabelModify" alignment="3" min="-2" pref="29" max="-2" attributes="0"/>
|
||||||
|
<Component id="LabelSimple" alignment="3" min="-2" pref="29" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
<EmptySpace pref="15" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
</Layout>
|
||||||
|
<SubComponents>
|
||||||
|
<Component class="java.awt.Label" name="labelParams">
|
||||||
|
<Properties>
|
||||||
|
<Property name="text" type="java.lang.String" value="Параметры"/>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
<Component class="java.awt.Label" name="labelSpeed">
|
||||||
|
<Properties>
|
||||||
|
<Property name="text" type="java.lang.String" value="Скорость"/>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
<Component class="java.awt.Label" name="labelWeight">
|
||||||
|
<Properties>
|
||||||
|
<Property name="text" type="java.lang.String" value="Вес"/>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
<Component class="java.awt.Checkbox" name="checkboxTower">
|
||||||
|
<Properties>
|
||||||
|
<Property name="label" type="java.lang.String" value="Признак наличия башни"/>
|
||||||
|
<Property name="name" type="java.lang.String" value="Башня" noResource="true"/>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
<Component class="java.awt.Checkbox" name="checkboxGun">
|
||||||
|
<Properties>
|
||||||
|
<Property name="label" type="java.lang.String" value="Признак наличия орудия"/>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
<Component class="javax.swing.JSpinner" name="SpinnerSpeed">
|
||||||
|
</Component>
|
||||||
|
<Component class="javax.swing.JSpinner" name="SpinnerWeight">
|
||||||
|
</Component>
|
||||||
|
<Container class="java.awt.Panel" name="panelColors">
|
||||||
|
|
||||||
|
<Layout>
|
||||||
|
<DimensionLayout dim="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" attributes="0">
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" attributes="0">
|
||||||
|
<Group type="103" groupAlignment="0" max="-2" attributes="0">
|
||||||
|
<Component id="PanelOrange" max="32767" attributes="0"/>
|
||||||
|
<Component id="PanelBlack" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<EmptySpace type="separate" max="-2" attributes="0"/>
|
||||||
|
<Group type="103" groupAlignment="1" max="-2" attributes="0">
|
||||||
|
<Group type="102" attributes="0">
|
||||||
|
<Component id="PanelGray" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Component id="PanelRed" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<Group type="102" attributes="0">
|
||||||
|
<Component id="PanelYellow" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="32767" attributes="0"/>
|
||||||
|
<Component id="PanelGreen" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Component id="PanelPink" min="-2" max="-2" attributes="0"/>
|
||||||
|
<Component id="PanelBlue" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
<Component id="labelColors" alignment="0" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<EmptySpace pref="28" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
<DimensionLayout dim="1">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" alignment="0" attributes="0">
|
||||||
|
<Component id="labelColors" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace min="-2" pref="20" max="-2" attributes="0"/>
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="103" groupAlignment="0" max="-2" attributes="0">
|
||||||
|
<Component id="PanelRed" max="32767" attributes="0"/>
|
||||||
|
<Component id="PanelBlack" max="32767" attributes="0"/>
|
||||||
|
<Component id="PanelPink" alignment="0" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<Component id="PanelGray" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Group type="103" groupAlignment="0" max="-2" attributes="0">
|
||||||
|
<Component id="PanelOrange" max="32767" attributes="0"/>
|
||||||
|
<Component id="PanelGreen" max="32767" attributes="0"/>
|
||||||
|
<Component id="PanelBlue" alignment="0" max="32767" attributes="0"/>
|
||||||
|
<Component id="PanelYellow" alignment="0" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<EmptySpace pref="33" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
</Layout>
|
||||||
|
<SubComponents>
|
||||||
|
<Component class="java.awt.Label" name="labelColors">
|
||||||
|
<Properties>
|
||||||
|
<Property name="text" type="java.lang.String" value="Цвета"/>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
<Container class="javax.swing.JPanel" name="PanelRed">
|
||||||
|
<Properties>
|
||||||
|
<Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
|
||||||
|
<Color blue="0" green="0" id="red" palette="1" red="ff" type="palette"/>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
|
||||||
|
<Layout>
|
||||||
|
<DimensionLayout dim="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<EmptySpace min="0" pref="45" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
<DimensionLayout dim="1">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<EmptySpace min="0" pref="37" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
</Layout>
|
||||||
|
</Container>
|
||||||
|
<Container class="javax.swing.JPanel" name="PanelGray">
|
||||||
|
<Properties>
|
||||||
|
<Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
|
||||||
|
<Color blue="80" green="80" id="gray" palette="1" red="80" type="palette"/>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
|
||||||
|
<Layout>
|
||||||
|
<DimensionLayout dim="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<EmptySpace min="0" pref="39" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
<DimensionLayout dim="1">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<EmptySpace min="0" pref="37" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
</Layout>
|
||||||
|
</Container>
|
||||||
|
<Container class="javax.swing.JPanel" name="PanelBlack">
|
||||||
|
<Properties>
|
||||||
|
<Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
|
||||||
|
<Color blue="0" green="0" id="black" palette="1" red="0" type="palette"/>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
|
||||||
|
<Layout>
|
||||||
|
<DimensionLayout dim="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
<DimensionLayout dim="1">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
</Layout>
|
||||||
|
</Container>
|
||||||
|
<Container class="javax.swing.JPanel" name="PanelOrange">
|
||||||
|
<Properties>
|
||||||
|
<Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
|
||||||
|
<Color blue="0" green="c8" id="orange" palette="1" red="ff" type="palette"/>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
|
||||||
|
<Layout>
|
||||||
|
<DimensionLayout dim="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<EmptySpace min="0" pref="39" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
<DimensionLayout dim="1">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<EmptySpace min="0" pref="39" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
</Layout>
|
||||||
|
</Container>
|
||||||
|
<Container class="javax.swing.JPanel" name="PanelPink">
|
||||||
|
<Properties>
|
||||||
|
<Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
|
||||||
|
<Color blue="af" green="af" id="pink" palette="1" red="ff" type="palette"/>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
|
||||||
|
<Layout>
|
||||||
|
<DimensionLayout dim="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<EmptySpace min="0" pref="39" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
<DimensionLayout dim="1">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
</Layout>
|
||||||
|
</Container>
|
||||||
|
<Container class="javax.swing.JPanel" name="PanelGreen">
|
||||||
|
<Properties>
|
||||||
|
<Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
|
||||||
|
<Color blue="0" green="ff" id="green" palette="1" red="0" type="palette"/>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
|
||||||
|
<Layout>
|
||||||
|
<DimensionLayout dim="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<EmptySpace min="0" pref="39" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
<DimensionLayout dim="1">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
</Layout>
|
||||||
|
</Container>
|
||||||
|
<Container class="javax.swing.JPanel" name="PanelBlue">
|
||||||
|
<Properties>
|
||||||
|
<Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
|
||||||
|
<Color blue="ff" green="0" id="blue" palette="1" red="0" type="palette"/>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
|
||||||
|
<Layout>
|
||||||
|
<DimensionLayout dim="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<EmptySpace min="0" pref="39" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
<DimensionLayout dim="1">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
</Layout>
|
||||||
|
</Container>
|
||||||
|
<Container class="javax.swing.JPanel" name="PanelYellow">
|
||||||
|
<Properties>
|
||||||
|
<Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
|
||||||
|
<Color blue="0" green="ff" id="yellow" palette="1" red="ff" type="palette"/>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
|
||||||
|
<Layout>
|
||||||
|
<DimensionLayout dim="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<EmptySpace min="0" pref="39" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
<DimensionLayout dim="1">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
</Layout>
|
||||||
|
</Container>
|
||||||
|
<Component class="java.awt.Label" name="label2">
|
||||||
|
<Properties>
|
||||||
|
<Property name="text" type="java.lang.String" value="label2"/>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
</SubComponents>
|
||||||
|
</Container>
|
||||||
|
<Component class="java.awt.Label" name="label1">
|
||||||
|
<Properties>
|
||||||
|
<Property name="text" type="java.lang.String" value="label1"/>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
<Component class="javax.swing.JLabel" name="LabelCountRollers">
|
||||||
|
<Properties>
|
||||||
|
<Property name="text" type="java.lang.String" value="Количество катков"/>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
<Component class="javax.swing.JComboBox" name="ComboBoxCountRollers">
|
||||||
|
<Properties>
|
||||||
|
<Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
|
||||||
|
<StringArray count="3">
|
||||||
|
<StringItem index="0" value="4"/>
|
||||||
|
<StringItem index="1" value="5"/>
|
||||||
|
<StringItem index="2" value="6"/>
|
||||||
|
</StringArray>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
<AuxValues>
|
||||||
|
<AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="<String>"/>
|
||||||
|
</AuxValues>
|
||||||
|
</Component>
|
||||||
|
<Component class="javax.swing.JLabel" name="LabelModify">
|
||||||
|
<Properties>
|
||||||
|
<Property name="text" type="java.lang.String" value="Продвинутый"/>
|
||||||
|
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
|
||||||
|
<Border info="org.netbeans.modules.form.compat2.border.LineBorderInfo">
|
||||||
|
<LineBorder/>
|
||||||
|
</Border>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
<Component class="javax.swing.JLabel" name="LabelSimple">
|
||||||
|
<Properties>
|
||||||
|
<Property name="text" type="java.lang.String" value="Простой"/>
|
||||||
|
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
|
||||||
|
<Border info="org.netbeans.modules.form.compat2.border.LineBorderInfo">
|
||||||
|
<LineBorder/>
|
||||||
|
</Border>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
<Component class="javax.swing.JLabel" name="LabelFirstRoller">
|
||||||
|
<Properties>
|
||||||
|
<Property name="text" type="java.lang.String" value="Первый тип"/>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
<Component class="javax.swing.JLabel" name="LabelSecondRoller">
|
||||||
|
<Properties>
|
||||||
|
<Property name="text" type="java.lang.String" value="Второй тип"/>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
<Component class="javax.swing.JLabel" name="LabelSimpleRollers">
|
||||||
|
<Properties>
|
||||||
|
<Property name="text" type="java.lang.String" value="Простые"/>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
</SubComponents>
|
||||||
|
</Container>
|
||||||
|
<Container class="java.awt.Panel" name="panelObject">
|
||||||
|
|
||||||
|
<Layout>
|
||||||
|
<DimensionLayout dim="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" alignment="0" attributes="0">
|
||||||
|
<EmptySpace min="-2" pref="32" max="-2" attributes="0"/>
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" alignment="1" attributes="0">
|
||||||
|
<Component id="panelDraw" max="32767" attributes="0"/>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<Group type="102" alignment="1" attributes="0">
|
||||||
|
<Component id="LabelColor" min="-2" pref="80" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="32767" attributes="0"/>
|
||||||
|
<Component id="LabelDopColor" min="-2" pref="86" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace min="-2" pref="41" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
<DimensionLayout dim="1">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" alignment="0" attributes="0">
|
||||||
|
<EmptySpace min="-2" pref="15" max="-2" attributes="0"/>
|
||||||
|
<Group type="103" groupAlignment="0" max="-2" attributes="0">
|
||||||
|
<Component id="LabelColor" pref="29" max="32767" attributes="0"/>
|
||||||
|
<Component id="LabelDopColor" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<EmptySpace pref="27" max="32767" attributes="0"/>
|
||||||
|
<Component id="panelDraw" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
</Layout>
|
||||||
|
<SubComponents>
|
||||||
|
<Component class="javax.swing.JLabel" name="LabelDopColor">
|
||||||
|
<Properties>
|
||||||
|
<Property name="text" type="java.lang.String" value="Доп. цвет"/>
|
||||||
|
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
|
||||||
|
<Border info="org.netbeans.modules.form.compat2.border.LineBorderInfo">
|
||||||
|
<LineBorder/>
|
||||||
|
</Border>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
<Component class="javax.swing.JLabel" name="LabelColor">
|
||||||
|
<Properties>
|
||||||
|
<Property name="text" type="java.lang.String" value="Цвет"/>
|
||||||
|
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
|
||||||
|
<Border info="org.netbeans.modules.form.compat2.border.LineBorderInfo">
|
||||||
|
<LineBorder/>
|
||||||
|
</Border>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
<Container class="java.awt.Panel" name="panelDraw">
|
||||||
|
|
||||||
|
<Layout>
|
||||||
|
<DimensionLayout dim="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
<DimensionLayout dim="1">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<EmptySpace min="0" pref="160" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
</Layout>
|
||||||
|
</Container>
|
||||||
|
</SubComponents>
|
||||||
|
</Container>
|
||||||
|
<Component class="java.awt.Button" name="buttonAdd">
|
||||||
|
<Properties>
|
||||||
|
<Property name="label" type="java.lang.String" value="Добавить"/>
|
||||||
|
</Properties>
|
||||||
|
<Events>
|
||||||
|
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="buttonAddMouseClicked"/>
|
||||||
|
</Events>
|
||||||
|
</Component>
|
||||||
|
<Component class="java.awt.Button" name="buttonCancel">
|
||||||
|
<Properties>
|
||||||
|
<Property name="label" type="java.lang.String" value="Отмена"/>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
</SubComponents>
|
||||||
|
</Form>
|
||||||
598
ArmoredVehicle/src/FormArmoredVehicleConfig.java
Normal file
598
ArmoredVehicle/src/FormArmoredVehicleConfig.java
Normal file
@@ -0,0 +1,598 @@
|
|||||||
|
|
||||||
|
import java.awt.Color;
|
||||||
|
import java.awt.Cursor;
|
||||||
|
import java.awt.Graphics;
|
||||||
|
import java.awt.Graphics2D;
|
||||||
|
import java.awt.Image;
|
||||||
|
import java.awt.event.MouseAdapter;
|
||||||
|
import java.awt.event.MouseEvent;
|
||||||
|
import java.awt.image.BufferedImage;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
import javax.swing.JComponent;
|
||||||
|
import javax.swing.JLabel;
|
||||||
|
import javax.swing.JPanel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Alena
|
||||||
|
*/
|
||||||
|
public class FormArmoredVehicleConfig extends javax.swing.JFrame {
|
||||||
|
DrawingArmoredVehicle _machine;
|
||||||
|
Consumer<DrawingArmoredVehicle> EventAddMachine;
|
||||||
|
public boolean DialogResult = false;
|
||||||
|
Image img;
|
||||||
|
/**
|
||||||
|
* Creates new form FormArmoredVehicleConfig
|
||||||
|
*/
|
||||||
|
public void AddEvent(Consumer<DrawingArmoredVehicle> ev) { EventAddMachine = ev; }
|
||||||
|
public FormArmoredVehicleConfig() {
|
||||||
|
initComponents();
|
||||||
|
MouseAdapter drag = new MouseAdapter() {
|
||||||
|
@Override
|
||||||
|
public void mousePressed(MouseEvent e) {
|
||||||
|
setCursor(new Cursor(Cursor.HAND_CURSOR));
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void mouseReleased(MouseEvent e) {
|
||||||
|
setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
|
||||||
|
Drop((JComponent) e.getSource());
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
MouseAdapter defCursor = new MouseAdapter() {
|
||||||
|
@Override
|
||||||
|
public void mouseExited(MouseEvent e) {
|
||||||
|
setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
panelDraw.addMouseListener(defCursor);
|
||||||
|
LabelColor.addMouseListener(defCursor);
|
||||||
|
LabelDopColor.addMouseListener(defCursor);
|
||||||
|
|
||||||
|
PanelRed.addMouseListener(drag);
|
||||||
|
PanelBlack.addMouseListener(drag);
|
||||||
|
PanelGray.addMouseListener(drag);
|
||||||
|
PanelOrange.addMouseListener(drag);
|
||||||
|
PanelYellow.addMouseListener(drag);
|
||||||
|
PanelPink.addMouseListener(drag);
|
||||||
|
PanelGreen.addMouseListener(drag);
|
||||||
|
PanelBlue.addMouseListener(drag);
|
||||||
|
|
||||||
|
LabelSimple.addMouseListener(drag);
|
||||||
|
LabelModify.addMouseListener(drag);
|
||||||
|
LabelFirstRoller.addMouseListener(drag);
|
||||||
|
LabelSecondRoller.addMouseListener(drag);
|
||||||
|
LabelSimpleRollers.addMouseListener(drag);
|
||||||
|
|
||||||
|
buttonAdd.addActionListener(e -> {
|
||||||
|
EventAddMachine.accept(_machine);
|
||||||
|
DialogResult = true;
|
||||||
|
dispose();
|
||||||
|
});
|
||||||
|
|
||||||
|
buttonCancel.addActionListener(e -> dispose());
|
||||||
|
}
|
||||||
|
|
||||||
|
public DrawingArmoredVehicle getSelectedCar() {
|
||||||
|
return _machine;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* This method is called from within the constructor to initialize the form.
|
||||||
|
* WARNING: Do NOT modify this code. The content of this method is always
|
||||||
|
* regenerated by the Form Editor.
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
|
||||||
|
private void initComponents() {
|
||||||
|
|
||||||
|
choice1 = new java.awt.Choice();
|
||||||
|
panelParams = new java.awt.Panel();
|
||||||
|
labelParams = new java.awt.Label();
|
||||||
|
labelSpeed = new java.awt.Label();
|
||||||
|
labelWeight = new java.awt.Label();
|
||||||
|
checkboxTower = new java.awt.Checkbox();
|
||||||
|
checkboxGun = new java.awt.Checkbox();
|
||||||
|
SpinnerSpeed = new javax.swing.JSpinner();
|
||||||
|
SpinnerWeight = new javax.swing.JSpinner();
|
||||||
|
panelColors = new java.awt.Panel();
|
||||||
|
labelColors = new java.awt.Label();
|
||||||
|
PanelRed = new javax.swing.JPanel();
|
||||||
|
PanelGray = new javax.swing.JPanel();
|
||||||
|
PanelBlack = new javax.swing.JPanel();
|
||||||
|
PanelOrange = new javax.swing.JPanel();
|
||||||
|
PanelPink = new javax.swing.JPanel();
|
||||||
|
PanelGreen = new javax.swing.JPanel();
|
||||||
|
PanelBlue = new javax.swing.JPanel();
|
||||||
|
PanelYellow = new javax.swing.JPanel();
|
||||||
|
label2 = new java.awt.Label();
|
||||||
|
label1 = new java.awt.Label();
|
||||||
|
LabelCountRollers = new javax.swing.JLabel();
|
||||||
|
ComboBoxCountRollers = new javax.swing.JComboBox<>();
|
||||||
|
LabelModify = new javax.swing.JLabel();
|
||||||
|
LabelSimple = new javax.swing.JLabel();
|
||||||
|
LabelFirstRoller = new javax.swing.JLabel();
|
||||||
|
LabelSecondRoller = new javax.swing.JLabel();
|
||||||
|
LabelSimpleRollers = new javax.swing.JLabel();
|
||||||
|
panelObject = new java.awt.Panel();
|
||||||
|
LabelDopColor = new javax.swing.JLabel();
|
||||||
|
LabelColor = new javax.swing.JLabel();
|
||||||
|
panelDraw = new java.awt.Panel();
|
||||||
|
buttonAdd = new java.awt.Button();
|
||||||
|
buttonCancel = new java.awt.Button();
|
||||||
|
|
||||||
|
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
|
||||||
|
|
||||||
|
labelParams.setText("Параметры");
|
||||||
|
|
||||||
|
labelSpeed.setText("Скорость");
|
||||||
|
|
||||||
|
labelWeight.setText("Вес");
|
||||||
|
|
||||||
|
checkboxTower.setLabel("Признак наличия башни");
|
||||||
|
checkboxTower.setName("Башня"); // NOI18N
|
||||||
|
|
||||||
|
checkboxGun.setLabel("Признак наличия орудия");
|
||||||
|
|
||||||
|
labelColors.setText("Цвета");
|
||||||
|
|
||||||
|
PanelRed.setBackground(java.awt.Color.red);
|
||||||
|
|
||||||
|
javax.swing.GroupLayout PanelRedLayout = new javax.swing.GroupLayout(PanelRed);
|
||||||
|
PanelRed.setLayout(PanelRedLayout);
|
||||||
|
PanelRedLayout.setHorizontalGroup(
|
||||||
|
PanelRedLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGap(0, 45, Short.MAX_VALUE)
|
||||||
|
);
|
||||||
|
PanelRedLayout.setVerticalGroup(
|
||||||
|
PanelRedLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGap(0, 37, Short.MAX_VALUE)
|
||||||
|
);
|
||||||
|
|
||||||
|
PanelGray.setBackground(java.awt.Color.gray);
|
||||||
|
|
||||||
|
javax.swing.GroupLayout PanelGrayLayout = new javax.swing.GroupLayout(PanelGray);
|
||||||
|
PanelGray.setLayout(PanelGrayLayout);
|
||||||
|
PanelGrayLayout.setHorizontalGroup(
|
||||||
|
PanelGrayLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGap(0, 39, Short.MAX_VALUE)
|
||||||
|
);
|
||||||
|
PanelGrayLayout.setVerticalGroup(
|
||||||
|
PanelGrayLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGap(0, 37, Short.MAX_VALUE)
|
||||||
|
);
|
||||||
|
|
||||||
|
PanelBlack.setBackground(java.awt.Color.black);
|
||||||
|
|
||||||
|
javax.swing.GroupLayout PanelBlackLayout = new javax.swing.GroupLayout(PanelBlack);
|
||||||
|
PanelBlack.setLayout(PanelBlackLayout);
|
||||||
|
PanelBlackLayout.setHorizontalGroup(
|
||||||
|
PanelBlackLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGap(0, 0, Short.MAX_VALUE)
|
||||||
|
);
|
||||||
|
PanelBlackLayout.setVerticalGroup(
|
||||||
|
PanelBlackLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGap(0, 0, Short.MAX_VALUE)
|
||||||
|
);
|
||||||
|
|
||||||
|
PanelOrange.setBackground(java.awt.Color.orange);
|
||||||
|
|
||||||
|
javax.swing.GroupLayout PanelOrangeLayout = new javax.swing.GroupLayout(PanelOrange);
|
||||||
|
PanelOrange.setLayout(PanelOrangeLayout);
|
||||||
|
PanelOrangeLayout.setHorizontalGroup(
|
||||||
|
PanelOrangeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGap(0, 39, Short.MAX_VALUE)
|
||||||
|
);
|
||||||
|
PanelOrangeLayout.setVerticalGroup(
|
||||||
|
PanelOrangeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGap(0, 39, Short.MAX_VALUE)
|
||||||
|
);
|
||||||
|
|
||||||
|
PanelPink.setBackground(java.awt.Color.pink);
|
||||||
|
|
||||||
|
javax.swing.GroupLayout PanelPinkLayout = new javax.swing.GroupLayout(PanelPink);
|
||||||
|
PanelPink.setLayout(PanelPinkLayout);
|
||||||
|
PanelPinkLayout.setHorizontalGroup(
|
||||||
|
PanelPinkLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGap(0, 39, Short.MAX_VALUE)
|
||||||
|
);
|
||||||
|
PanelPinkLayout.setVerticalGroup(
|
||||||
|
PanelPinkLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGap(0, 0, Short.MAX_VALUE)
|
||||||
|
);
|
||||||
|
|
||||||
|
PanelGreen.setBackground(java.awt.Color.green);
|
||||||
|
|
||||||
|
javax.swing.GroupLayout PanelGreenLayout = new javax.swing.GroupLayout(PanelGreen);
|
||||||
|
PanelGreen.setLayout(PanelGreenLayout);
|
||||||
|
PanelGreenLayout.setHorizontalGroup(
|
||||||
|
PanelGreenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGap(0, 39, Short.MAX_VALUE)
|
||||||
|
);
|
||||||
|
PanelGreenLayout.setVerticalGroup(
|
||||||
|
PanelGreenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGap(0, 0, Short.MAX_VALUE)
|
||||||
|
);
|
||||||
|
|
||||||
|
PanelBlue.setBackground(java.awt.Color.blue);
|
||||||
|
|
||||||
|
javax.swing.GroupLayout PanelBlueLayout = new javax.swing.GroupLayout(PanelBlue);
|
||||||
|
PanelBlue.setLayout(PanelBlueLayout);
|
||||||
|
PanelBlueLayout.setHorizontalGroup(
|
||||||
|
PanelBlueLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGap(0, 39, Short.MAX_VALUE)
|
||||||
|
);
|
||||||
|
PanelBlueLayout.setVerticalGroup(
|
||||||
|
PanelBlueLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGap(0, 0, Short.MAX_VALUE)
|
||||||
|
);
|
||||||
|
|
||||||
|
PanelYellow.setBackground(java.awt.Color.yellow);
|
||||||
|
|
||||||
|
javax.swing.GroupLayout PanelYellowLayout = new javax.swing.GroupLayout(PanelYellow);
|
||||||
|
PanelYellow.setLayout(PanelYellowLayout);
|
||||||
|
PanelYellowLayout.setHorizontalGroup(
|
||||||
|
PanelYellowLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGap(0, 39, Short.MAX_VALUE)
|
||||||
|
);
|
||||||
|
PanelYellowLayout.setVerticalGroup(
|
||||||
|
PanelYellowLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGap(0, 0, Short.MAX_VALUE)
|
||||||
|
);
|
||||||
|
|
||||||
|
label2.setText("label2");
|
||||||
|
|
||||||
|
javax.swing.GroupLayout panelColorsLayout = new javax.swing.GroupLayout(panelColors);
|
||||||
|
panelColors.setLayout(panelColorsLayout);
|
||||||
|
panelColorsLayout.setHorizontalGroup(
|
||||||
|
panelColorsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(panelColorsLayout.createSequentialGroup()
|
||||||
|
.addContainerGap()
|
||||||
|
.addGroup(panelColorsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(panelColorsLayout.createSequentialGroup()
|
||||||
|
.addGroup(panelColorsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
|
||||||
|
.addComponent(PanelOrange, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
|
.addComponent(PanelBlack, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||||
|
.addGap(18, 18, 18)
|
||||||
|
.addGroup(panelColorsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
|
||||||
|
.addGroup(panelColorsLayout.createSequentialGroup()
|
||||||
|
.addComponent(PanelGray, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
|
.addComponent(PanelRed, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||||
|
.addGroup(panelColorsLayout.createSequentialGroup()
|
||||||
|
.addComponent(PanelYellow, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
|
.addComponent(PanelGreen, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||||
|
.addGroup(panelColorsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addComponent(PanelPink, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addComponent(PanelBlue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
|
||||||
|
.addComponent(labelColors, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||||
|
.addContainerGap(28, Short.MAX_VALUE))
|
||||||
|
);
|
||||||
|
panelColorsLayout.setVerticalGroup(
|
||||||
|
panelColorsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(panelColorsLayout.createSequentialGroup()
|
||||||
|
.addComponent(labelColors, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addGap(20, 20, 20)
|
||||||
|
.addGroup(panelColorsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(panelColorsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
|
||||||
|
.addComponent(PanelRed, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
|
.addComponent(PanelBlack, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
|
.addComponent(PanelPink, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||||
|
.addComponent(PanelGray, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
|
.addGroup(panelColorsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
|
||||||
|
.addComponent(PanelOrange, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
|
.addComponent(PanelGreen, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
|
.addComponent(PanelBlue, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
|
.addComponent(PanelYellow, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||||
|
.addContainerGap(33, Short.MAX_VALUE))
|
||||||
|
);
|
||||||
|
|
||||||
|
label1.setText("label1");
|
||||||
|
|
||||||
|
LabelCountRollers.setText("Количество катков");
|
||||||
|
|
||||||
|
ComboBoxCountRollers.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "4", "5", "6" }));
|
||||||
|
|
||||||
|
LabelModify.setText("Продвинутый");
|
||||||
|
LabelModify.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
|
||||||
|
|
||||||
|
LabelSimple.setText("Простой");
|
||||||
|
LabelSimple.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
|
||||||
|
|
||||||
|
LabelFirstRoller.setText("Первый тип");
|
||||||
|
|
||||||
|
LabelSecondRoller.setText("Второй тип");
|
||||||
|
|
||||||
|
LabelSimpleRollers.setText("Простые");
|
||||||
|
|
||||||
|
javax.swing.GroupLayout panelParamsLayout = new javax.swing.GroupLayout(panelParams);
|
||||||
|
panelParams.setLayout(panelParamsLayout);
|
||||||
|
panelParamsLayout.setHorizontalGroup(
|
||||||
|
panelParamsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(panelParamsLayout.createSequentialGroup()
|
||||||
|
.addContainerGap()
|
||||||
|
.addGroup(panelParamsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(panelParamsLayout.createSequentialGroup()
|
||||||
|
.addComponent(checkboxGun, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addGap(54, 54, 54)
|
||||||
|
.addComponent(LabelSimple, javax.swing.GroupLayout.PREFERRED_SIZE, 67, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addGap(27, 27, 27)
|
||||||
|
.addComponent(LabelModify, javax.swing.GroupLayout.PREFERRED_SIZE, 87, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||||
|
.addGroup(panelParamsLayout.createSequentialGroup()
|
||||||
|
.addGroup(panelParamsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addComponent(labelParams, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addGroup(panelParamsLayout.createSequentialGroup()
|
||||||
|
.addGroup(panelParamsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addComponent(labelSpeed, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addComponent(labelWeight, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
|
.addGroup(panelParamsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addComponent(SpinnerWeight, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addComponent(SpinnerSpeed, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
|
||||||
|
.addGroup(panelParamsLayout.createSequentialGroup()
|
||||||
|
.addComponent(LabelCountRollers)
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||||
|
.addComponent(ComboBoxCountRollers, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
|
.addComponent(panelColors, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||||
|
.addGroup(panelParamsLayout.createSequentialGroup()
|
||||||
|
.addGroup(panelParamsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
|
||||||
|
.addGroup(panelParamsLayout.createSequentialGroup()
|
||||||
|
.addComponent(LabelFirstRoller)
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
|
.addComponent(LabelSecondRoller))
|
||||||
|
.addComponent(checkboxTower, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||||
|
.addGap(18, 18, 18)
|
||||||
|
.addComponent(LabelSimpleRollers)))
|
||||||
|
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||||
|
);
|
||||||
|
panelParamsLayout.setVerticalGroup(
|
||||||
|
panelParamsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(panelParamsLayout.createSequentialGroup()
|
||||||
|
.addGroup(panelParamsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(panelParamsLayout.createSequentialGroup()
|
||||||
|
.addGap(34, 34, 34)
|
||||||
|
.addComponent(labelParams, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
|
.addGroup(panelParamsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addComponent(labelSpeed, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addComponent(SpinnerSpeed, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
|
.addGroup(panelParamsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addComponent(labelWeight, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addComponent(SpinnerWeight, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
|
.addGroup(panelParamsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addComponent(LabelCountRollers)
|
||||||
|
.addComponent(ComboBoxCountRollers, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
|
||||||
|
.addGroup(panelParamsLayout.createSequentialGroup()
|
||||||
|
.addContainerGap()
|
||||||
|
.addComponent(panelColors, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
|
.addGroup(panelParamsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addComponent(LabelSecondRoller)
|
||||||
|
.addGroup(panelParamsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||||
|
.addComponent(LabelFirstRoller)
|
||||||
|
.addComponent(LabelSimpleRollers)))
|
||||||
|
.addGap(12, 12, 12)
|
||||||
|
.addGroup(panelParamsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(panelParamsLayout.createSequentialGroup()
|
||||||
|
.addComponent(checkboxTower, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
|
.addComponent(checkboxGun, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||||
|
.addGroup(panelParamsLayout.createSequentialGroup()
|
||||||
|
.addGap(20, 20, 20)
|
||||||
|
.addGroup(panelParamsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||||
|
.addComponent(LabelModify, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addComponent(LabelSimple, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE))))
|
||||||
|
.addContainerGap(15, Short.MAX_VALUE))
|
||||||
|
);
|
||||||
|
|
||||||
|
LabelDopColor.setText("Доп. цвет");
|
||||||
|
LabelDopColor.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
|
||||||
|
|
||||||
|
LabelColor.setText("Цвет");
|
||||||
|
LabelColor.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
|
||||||
|
|
||||||
|
javax.swing.GroupLayout panelDrawLayout = new javax.swing.GroupLayout(panelDraw);
|
||||||
|
panelDraw.setLayout(panelDrawLayout);
|
||||||
|
panelDrawLayout.setHorizontalGroup(
|
||||||
|
panelDrawLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGap(0, 0, Short.MAX_VALUE)
|
||||||
|
);
|
||||||
|
panelDrawLayout.setVerticalGroup(
|
||||||
|
panelDrawLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGap(0, 160, Short.MAX_VALUE)
|
||||||
|
);
|
||||||
|
|
||||||
|
javax.swing.GroupLayout panelObjectLayout = new javax.swing.GroupLayout(panelObject);
|
||||||
|
panelObject.setLayout(panelObjectLayout);
|
||||||
|
panelObjectLayout.setHorizontalGroup(
|
||||||
|
panelObjectLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(panelObjectLayout.createSequentialGroup()
|
||||||
|
.addGap(32, 32, 32)
|
||||||
|
.addGroup(panelObjectLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelObjectLayout.createSequentialGroup()
|
||||||
|
.addComponent(panelDraw, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
|
.addContainerGap())
|
||||||
|
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelObjectLayout.createSequentialGroup()
|
||||||
|
.addComponent(LabelColor, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
|
.addComponent(LabelDopColor, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addGap(41, 41, 41))))
|
||||||
|
);
|
||||||
|
panelObjectLayout.setVerticalGroup(
|
||||||
|
panelObjectLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(panelObjectLayout.createSequentialGroup()
|
||||||
|
.addGap(15, 15, 15)
|
||||||
|
.addGroup(panelObjectLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
|
||||||
|
.addComponent(LabelColor, javax.swing.GroupLayout.DEFAULT_SIZE, 29, Short.MAX_VALUE)
|
||||||
|
.addComponent(LabelDopColor, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 27, Short.MAX_VALUE)
|
||||||
|
.addComponent(panelDraw, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addContainerGap())
|
||||||
|
);
|
||||||
|
|
||||||
|
buttonAdd.setLabel("Добавить");
|
||||||
|
buttonAdd.addMouseListener(new java.awt.event.MouseAdapter() {
|
||||||
|
public void mouseClicked(java.awt.event.MouseEvent evt) {
|
||||||
|
buttonAddMouseClicked(evt);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
buttonCancel.setLabel("Отмена");
|
||||||
|
|
||||||
|
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
|
||||||
|
getContentPane().setLayout(layout);
|
||||||
|
layout.setHorizontalGroup(
|
||||||
|
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(layout.createSequentialGroup()
|
||||||
|
.addContainerGap()
|
||||||
|
.addComponent(panelParams, javax.swing.GroupLayout.PREFERRED_SIZE, 420, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(layout.createSequentialGroup()
|
||||||
|
.addComponent(panelObject, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
|
.addContainerGap())
|
||||||
|
.addGroup(layout.createSequentialGroup()
|
||||||
|
.addGap(10, 10, 10)
|
||||||
|
.addComponent(buttonAdd, javax.swing.GroupLayout.PREFERRED_SIZE, 69, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addGap(42, 42, 42)
|
||||||
|
.addComponent(buttonCancel, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addContainerGap(85, Short.MAX_VALUE))))
|
||||||
|
);
|
||||||
|
layout.setVerticalGroup(
|
||||||
|
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(layout.createSequentialGroup()
|
||||||
|
.addContainerGap()
|
||||||
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(layout.createSequentialGroup()
|
||||||
|
.addComponent(panelObject, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
|
||||||
|
.addComponent(buttonAdd, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addComponent(buttonCancel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
|
||||||
|
.addComponent(panelParams, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||||
|
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||||
|
);
|
||||||
|
|
||||||
|
pack();
|
||||||
|
}// </editor-fold>//GEN-END:initComponents
|
||||||
|
|
||||||
|
private void buttonAddMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_buttonAddMouseClicked
|
||||||
|
DialogResult = true;
|
||||||
|
dispose();
|
||||||
|
}//GEN-LAST:event_buttonAddMouseClicked
|
||||||
|
|
||||||
|
|
||||||
|
public void Drop(JComponent droppedItem) {
|
||||||
|
if (droppedItem == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Color color = Color.WHITE;
|
||||||
|
Color dopColor = Color.BLACK;
|
||||||
|
int rollers = Integer.parseInt((String) ComboBoxCountRollers.getSelectedItem());
|
||||||
|
if (droppedItem instanceof JPanel panel) {
|
||||||
|
if (_machine == null)
|
||||||
|
return;
|
||||||
|
boolean p = LabelColor.getMousePosition() != null;
|
||||||
|
if (p) {
|
||||||
|
color = panel.getBackground();
|
||||||
|
if(_machine instanceof DrawingTank tank)
|
||||||
|
{
|
||||||
|
var obj = (TankEntity)_machine.ArmoredVehicle;
|
||||||
|
_machine = new DrawingTank(obj.Speed, obj.Weight,
|
||||||
|
color, obj.DopColor, obj.MachineGun, obj.Tower);
|
||||||
|
}
|
||||||
|
else _machine = new DrawingArmoredVehicle(_machine.ArmoredVehicle.Speed, _machine.ArmoredVehicle.Weight, color);
|
||||||
|
}
|
||||||
|
if (LabelDopColor.getMousePosition() != null && _machine instanceof DrawingTank tank) {
|
||||||
|
dopColor = panel.getBackground();
|
||||||
|
var obj = (TankEntity)_machine.ArmoredVehicle;
|
||||||
|
_machine = new DrawingTank(obj.Speed, obj.Weight,
|
||||||
|
obj.BodyColor, dopColor, obj.MachineGun, obj.Tower);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (droppedItem instanceof JLabel label && panelDraw.getMousePosition() != null) {
|
||||||
|
int speed = (int)SpinnerSpeed.getValue();
|
||||||
|
int weight = (int)SpinnerWeight.getValue();
|
||||||
|
|
||||||
|
boolean tower = checkboxTower.getState();
|
||||||
|
boolean gun = checkboxGun.getState();
|
||||||
|
Graphics g = panelDraw.getGraphics();
|
||||||
|
if (label == LabelSimple) {
|
||||||
|
_machine = new DrawingArmoredVehicle(speed, weight, color);
|
||||||
|
} else if (label == LabelModify) {
|
||||||
|
_machine = new DrawingTank(speed, weight, color, dopColor, gun, tower);
|
||||||
|
}
|
||||||
|
_machine.Count = rollers;
|
||||||
|
|
||||||
|
}
|
||||||
|
if (droppedItem instanceof JLabel label && _machine!=null) {
|
||||||
|
if (label == LabelSimpleRollers) {
|
||||||
|
_machine = new DrawingArmoredVehicle(_machine.ArmoredVehicle, new Roller(_machine.ArmoredVehicle.BodyColor));
|
||||||
|
} else if (label == LabelFirstRoller) {
|
||||||
|
_machine = new DrawingArmoredVehicle(_machine.ArmoredVehicle, new DrawingFirstRoller(_machine.ArmoredVehicle.BodyColor));
|
||||||
|
} else if (label == LabelSecondRoller) {
|
||||||
|
_machine = new DrawingArmoredVehicle(_machine.ArmoredVehicle, new DrawingSecondRoller(_machine.ArmoredVehicle.BodyColor));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_machine!=null) {
|
||||||
|
_machine.Count = rollers;
|
||||||
|
_machine.SetPosition(panelDraw.getWidth() - 200, panelDraw.getHeight() - 150, panelDraw.getWidth(), panelDraw.getHeight());
|
||||||
|
Graphics g = panelDraw.getGraphics();
|
||||||
|
g.drawImage(Pic(), 0, 0, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
Image Pic()
|
||||||
|
{
|
||||||
|
BufferedImage img = new BufferedImage(panelDraw.getWidth(), panelDraw.getHeight(), BufferedImage.TYPE_INT_BGR);
|
||||||
|
Graphics2D gr = img.createGraphics();
|
||||||
|
gr.setBackground(Color.yellow);
|
||||||
|
_machine.DrawTransport(gr);
|
||||||
|
return img;
|
||||||
|
}
|
||||||
|
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||||
|
private javax.swing.JComboBox<String> ComboBoxCountRollers;
|
||||||
|
private javax.swing.JLabel LabelColor;
|
||||||
|
private javax.swing.JLabel LabelCountRollers;
|
||||||
|
private javax.swing.JLabel LabelDopColor;
|
||||||
|
private javax.swing.JLabel LabelFirstRoller;
|
||||||
|
private javax.swing.JLabel LabelModify;
|
||||||
|
private javax.swing.JLabel LabelSecondRoller;
|
||||||
|
private javax.swing.JLabel LabelSimple;
|
||||||
|
private javax.swing.JLabel LabelSimpleRollers;
|
||||||
|
private javax.swing.JPanel PanelBlack;
|
||||||
|
private javax.swing.JPanel PanelBlue;
|
||||||
|
private javax.swing.JPanel PanelGray;
|
||||||
|
private javax.swing.JPanel PanelGreen;
|
||||||
|
private javax.swing.JPanel PanelOrange;
|
||||||
|
private javax.swing.JPanel PanelPink;
|
||||||
|
private javax.swing.JPanel PanelRed;
|
||||||
|
private javax.swing.JPanel PanelYellow;
|
||||||
|
private javax.swing.JSpinner SpinnerSpeed;
|
||||||
|
private javax.swing.JSpinner SpinnerWeight;
|
||||||
|
private java.awt.Button buttonAdd;
|
||||||
|
private java.awt.Button buttonCancel;
|
||||||
|
private java.awt.Checkbox checkboxGun;
|
||||||
|
private java.awt.Checkbox checkboxTower;
|
||||||
|
private java.awt.Choice choice1;
|
||||||
|
private java.awt.Label label1;
|
||||||
|
private java.awt.Label label2;
|
||||||
|
private java.awt.Label labelColors;
|
||||||
|
private java.awt.Label labelParams;
|
||||||
|
private java.awt.Label labelSpeed;
|
||||||
|
private java.awt.Label labelWeight;
|
||||||
|
private java.awt.Panel panelColors;
|
||||||
|
private java.awt.Panel panelDraw;
|
||||||
|
private java.awt.Panel panelObject;
|
||||||
|
private java.awt.Panel panelParams;
|
||||||
|
// End of variables declaration//GEN-END:variables
|
||||||
|
}
|
||||||
@@ -1,10 +1,49 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
|
||||||
<Form version="1.9" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
|
<Form version="1.9" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
|
||||||
|
<NonVisualComponents>
|
||||||
|
<Menu class="javax.swing.JMenuBar" name="MenuBar">
|
||||||
|
<SubComponents>
|
||||||
|
<Menu class="javax.swing.JMenu" name="jMenuSave">
|
||||||
|
<Properties>
|
||||||
|
<Property name="text" type="java.lang.String" value="Сохранить карту"/>
|
||||||
|
</Properties>
|
||||||
|
<Events>
|
||||||
|
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="jMenuSaveMouseClicked"/>
|
||||||
|
</Events>
|
||||||
|
</Menu>
|
||||||
|
<Menu class="javax.swing.JMenu" name="jMenuLoad">
|
||||||
|
<Properties>
|
||||||
|
<Property name="text" type="java.lang.String" value="Загрузить карту"/>
|
||||||
|
</Properties>
|
||||||
|
<Events>
|
||||||
|
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="jMenuLoadMouseClicked"/>
|
||||||
|
</Events>
|
||||||
|
</Menu>
|
||||||
|
<Menu class="javax.swing.JMenu" name="jMenuSaveObj">
|
||||||
|
<Properties>
|
||||||
|
<Property name="text" type="java.lang.String" value="Сохранить объект"/>
|
||||||
|
</Properties>
|
||||||
|
<Events>
|
||||||
|
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="jMenuSaveObjMouseClicked"/>
|
||||||
|
</Events>
|
||||||
|
</Menu>
|
||||||
|
<Menu class="javax.swing.JMenu" name="jMenuLoadObj">
|
||||||
|
<Properties>
|
||||||
|
<Property name="text" type="java.lang.String" value="Загрузить объект"/>
|
||||||
|
</Properties>
|
||||||
|
<Events>
|
||||||
|
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="jMenuLoadObjMouseClicked"/>
|
||||||
|
</Events>
|
||||||
|
</Menu>
|
||||||
|
</SubComponents>
|
||||||
|
</Menu>
|
||||||
|
</NonVisualComponents>
|
||||||
<Properties>
|
<Properties>
|
||||||
<Property name="defaultCloseOperation" type="int" value="3"/>
|
<Property name="defaultCloseOperation" type="int" value="3"/>
|
||||||
</Properties>
|
</Properties>
|
||||||
<SyntheticProperties>
|
<SyntheticProperties>
|
||||||
|
<SyntheticProperty name="menuBar" type="java.lang.String" value="MenuBar"/>
|
||||||
<SyntheticProperty name="formSizePolicy" type="int" value="1"/>
|
<SyntheticProperty name="formSizePolicy" type="int" value="1"/>
|
||||||
<SyntheticProperty name="generateCenter" type="boolean" value="false"/>
|
<SyntheticProperty name="generateCenter" type="boolean" value="false"/>
|
||||||
</SyntheticProperties>
|
</SyntheticProperties>
|
||||||
|
|||||||
@@ -7,16 +7,24 @@ import java.awt.Graphics;
|
|||||||
import java.awt.Image;
|
import java.awt.Image;
|
||||||
import java.awt.event.WindowAdapter;
|
import java.awt.event.WindowAdapter;
|
||||||
import java.awt.event.WindowEvent;
|
import java.awt.event.WindowEvent;
|
||||||
|
import java.io.File;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Queue;
|
import java.util.Queue;
|
||||||
import javax.swing.event.ListSelectionEvent;
|
import javax.swing.event.ListSelectionEvent;
|
||||||
import javax.swing.event.ListSelectionListener;
|
import javax.swing.event.ListSelectionListener;
|
||||||
|
import javax.swing.filechooser.FileNameExtensionFilter;
|
||||||
|
import javax.swing.filechooser.FileFilter;
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
import java.util.logging.LogManager;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
|
||||||
public class FormMapWithSetMachine extends javax.swing.JFrame {
|
public class FormMapWithSetMachine extends javax.swing.JFrame {
|
||||||
private Image img;
|
private Image img;
|
||||||
private MapsCollection _mapCollection;
|
private MapsCollection _mapCollection;
|
||||||
|
private static Logger _logger;
|
||||||
private final HashMap<String, AbstractMap> _mapsDict = new HashMap<>() {{
|
private final HashMap<String, AbstractMap> _mapsDict = new HashMap<>() {{
|
||||||
put("Простая карта", new SimpleMap());
|
put("Простая карта", new SimpleMap());
|
||||||
put("Вертикальная карта", new VerticalMap());
|
put("Вертикальная карта", new VerticalMap());
|
||||||
@@ -34,7 +42,12 @@ private Image img;
|
|||||||
MapComboBox.addItem(elem);
|
MapComboBox.addItem(elem);
|
||||||
}
|
}
|
||||||
_mapCollection = new MapsCollection(PicturePanel.getWidth(), PicturePanel.getHeight());
|
_mapCollection = new MapsCollection(PicturePanel.getWidth(), PicturePanel.getHeight());
|
||||||
|
try(FileInputStream ins = new FileInputStream(this.getClass().getResource("log.config").toString().substring(6))){
|
||||||
|
LogManager.getLogManager().readConfiguration(ins);
|
||||||
|
_logger = Logger.getLogger(FormMapWithSetMachine.class.getName());
|
||||||
|
}catch (Exception ignore){
|
||||||
|
ignore.printStackTrace();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -61,6 +74,11 @@ private Image img;
|
|||||||
jScrollPane2 = new javax.swing.JScrollPane();
|
jScrollPane2 = new javax.swing.JScrollPane();
|
||||||
MapList = new javax.swing.JList<>();
|
MapList = new javax.swing.JList<>();
|
||||||
DeletedFormOpen = new javax.swing.JButton();
|
DeletedFormOpen = new javax.swing.JButton();
|
||||||
|
MenuBar = new javax.swing.JMenuBar();
|
||||||
|
jMenuSave = new javax.swing.JMenu();
|
||||||
|
jMenuLoad = new javax.swing.JMenu();
|
||||||
|
jMenuSaveObj = new javax.swing.JMenu();
|
||||||
|
jMenuLoadObj = new javax.swing.JMenu();
|
||||||
|
|
||||||
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
|
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
|
||||||
|
|
||||||
@@ -259,6 +277,40 @@ private Image img;
|
|||||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||||
);
|
);
|
||||||
|
|
||||||
|
jMenuSave.setText("Сохранить карту");
|
||||||
|
jMenuSave.addMouseListener(new java.awt.event.MouseAdapter() {
|
||||||
|
public void mouseClicked(java.awt.event.MouseEvent evt) {
|
||||||
|
jMenuSaveMouseClicked(evt);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
MenuBar.add(jMenuSave);
|
||||||
|
|
||||||
|
jMenuLoad.setText("Загрузить карту");
|
||||||
|
jMenuLoad.addMouseListener(new java.awt.event.MouseAdapter() {
|
||||||
|
public void mouseClicked(java.awt.event.MouseEvent evt) {
|
||||||
|
jMenuLoadMouseClicked(evt);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
MenuBar.add(jMenuLoad);
|
||||||
|
|
||||||
|
jMenuSaveObj.setText("Сохранить объект");
|
||||||
|
jMenuSaveObj.addMouseListener(new java.awt.event.MouseAdapter() {
|
||||||
|
public void mouseClicked(java.awt.event.MouseEvent evt) {
|
||||||
|
jMenuSaveObjMouseClicked(evt);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
MenuBar.add(jMenuSaveObj);
|
||||||
|
|
||||||
|
jMenuLoadObj.setText("Загрузить объект");
|
||||||
|
jMenuLoadObj.addMouseListener(new java.awt.event.MouseAdapter() {
|
||||||
|
public void mouseClicked(java.awt.event.MouseEvent evt) {
|
||||||
|
jMenuLoadObjMouseClicked(evt);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
MenuBar.add(jMenuLoadObj);
|
||||||
|
|
||||||
|
setJMenuBar(MenuBar);
|
||||||
|
|
||||||
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
|
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
|
||||||
getContentPane().setLayout(layout);
|
getContentPane().setLayout(layout);
|
||||||
layout.setHorizontalGroup(
|
layout.setHorizontalGroup(
|
||||||
@@ -301,11 +353,12 @@ private Image img;
|
|||||||
JOptionPane.showMessageDialog(null, "Не выбрана карта");
|
JOptionPane.showMessageDialog(null, "Не выбрана карта");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
MapForm form = new MapForm();
|
FormArmoredVehicleConfig form = new FormArmoredVehicleConfig();
|
||||||
form.setVisible(true);
|
form.setVisible(true);
|
||||||
form.addWindowListener(new WindowAdapter() {
|
form.addWindowListener(new WindowAdapter() {
|
||||||
@Override
|
@Override
|
||||||
public void windowDeactivated(WindowEvent e) {
|
public void windowDeactivated(WindowEvent e) {
|
||||||
|
try{
|
||||||
if (form.getSelectedCar() == null)
|
if (form.getSelectedCar() == null)
|
||||||
return;
|
return;
|
||||||
DrawingObject machine = new DrawingObject(form.getSelectedCar());
|
DrawingObject machine = new DrawingObject(form.getSelectedCar());
|
||||||
@@ -313,15 +366,24 @@ private Image img;
|
|||||||
{
|
{
|
||||||
if (form.DialogResult) {
|
if (form.DialogResult) {
|
||||||
JOptionPane.showMessageDialog(null, "Объект добавлен");
|
JOptionPane.showMessageDialog(null, "Объект добавлен");
|
||||||
|
_logger.log(Level.INFO, "Добавлен объект: "+machine);
|
||||||
img = _mapCollection.Get(MapList.getSelectedValue().toString()).ShowSet();
|
img = _mapCollection.Get(MapList.getSelectedValue().toString()).ShowSet();
|
||||||
Draw();
|
Draw();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
_logger.log(Level.INFO, "Не удалось добавить объект: "+machine);
|
||||||
JOptionPane.showMessageDialog(null, MapList.getSelectedValue().toString()+" Не удалось добавить объект");
|
JOptionPane.showMessageDialog(null, MapList.getSelectedValue().toString()+" Не удалось добавить объект");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
catch(StorageOverflowException ex)
|
||||||
|
{
|
||||||
|
_logger.log(Level.WARNING, "Ошибка переполнения хранилища: "+ex.getMessage());
|
||||||
|
JOptionPane.showMessageDialog(null, "Ошибка переполнения хранилища:"+ex.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
}//GEN-LAST:event_AddMachineButtonMouseClicked
|
}//GEN-LAST:event_AddMachineButtonMouseClicked
|
||||||
@@ -331,22 +393,36 @@ private Image img;
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
try
|
||||||
|
{
|
||||||
int res = JOptionPane.showConfirmDialog (null,"Удалить объект?",
|
int res = JOptionPane.showConfirmDialog (null,"Удалить объект?",
|
||||||
"Удаление", JOptionPane.YES_NO_OPTION);
|
"Удаление", JOptionPane.YES_NO_OPTION);
|
||||||
if (res == JOptionPane.YES_OPTION) {
|
if (res == JOptionPane.YES_OPTION) {
|
||||||
int pos = Integer.parseInt(TextBoxPosition.getText());
|
int pos = Integer.parseInt(TextBoxPosition.getText());
|
||||||
deleted.offer(_mapCollection.Get(MapList.getSelectedValue().toString()).GetMachineInList(pos).GetMachine());
|
var elem = _mapCollection.Get(MapList.getSelectedValue().toString()).GetMachineInList(pos).GetMachine();
|
||||||
|
deleted.offer(elem);
|
||||||
if (_mapCollection.Get(MapList.getSelectedValue().toString()).remove(pos) != null)
|
if (_mapCollection.Get(MapList.getSelectedValue().toString()).remove(pos) != null)
|
||||||
{
|
{
|
||||||
JOptionPane.showMessageDialog(null, "Объект удален");
|
JOptionPane.showMessageDialog(null, "Объект удален");
|
||||||
|
_logger.log(Level.INFO, "Удален объект: "+elem);
|
||||||
img = _mapCollection.Get(MapList.getSelectedValue().toString()).ShowSet();
|
img = _mapCollection.Get(MapList.getSelectedValue().toString()).ShowSet();
|
||||||
Draw();
|
Draw();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
_logger.log(Level.INFO, "Не удалось удалить объект по позиции: "+pos);
|
||||||
JOptionPane.showMessageDialog(null, "Не удалось удалить объект");
|
JOptionPane.showMessageDialog(null, "Не удалось удалить объект");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
catch (MachineNotFoundException ex) {
|
||||||
|
_logger.log(Level.WARNING, "Ошибка удаления: "+ex.getMessage());
|
||||||
|
JOptionPane.showMessageDialog(null, "Ошибка удаления: "+ex.getMessage());
|
||||||
|
} catch (Exception ex) {
|
||||||
|
_logger.log(Level.WARNING, "Неизвестная ошибка удаления: "+ex.getMessage());
|
||||||
|
JOptionPane.showMessageDialog(null, "Неизвестная ошибка: "+ex.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
}//GEN-LAST:event_DeleteButtonMouseClicked
|
}//GEN-LAST:event_DeleteButtonMouseClicked
|
||||||
|
|
||||||
private void StoreButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_StoreButtonMouseClicked
|
private void StoreButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_StoreButtonMouseClicked
|
||||||
@@ -369,15 +445,17 @@ private Image img;
|
|||||||
|
|
||||||
private void AddMapButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_AddMapButtonMouseClicked
|
private void AddMapButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_AddMapButtonMouseClicked
|
||||||
if (MapComboBox.getSelectedIndex() == -1 || MapNameTextField.getText().isEmpty()) {
|
if (MapComboBox.getSelectedIndex() == -1 || MapNameTextField.getText().isEmpty()) {
|
||||||
|
_logger.log(Level.INFO,"Не все данные были заполнены при добавлении карты");
|
||||||
JOptionPane.showMessageDialog(null, "Не все данные заполнены", "Ошибка", JOptionPane.ERROR_MESSAGE);
|
JOptionPane.showMessageDialog(null, "Не все данные заполнены", "Ошибка", JOptionPane.ERROR_MESSAGE);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!_mapsDict.containsKey(MapComboBox.getSelectedItem())) {
|
if (!_mapsDict.containsKey(MapComboBox.getSelectedItem())) {
|
||||||
|
_logger.log(Level.INFO,"Нет карты с названием: "+MapComboBox.getSelectedItem());
|
||||||
JOptionPane.showMessageDialog(null, "Нет такой карты", "Ошибка", JOptionPane.ERROR_MESSAGE);
|
JOptionPane.showMessageDialog(null, "Нет такой карты", "Ошибка", JOptionPane.ERROR_MESSAGE);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
_mapCollection.AddMap(MapNameTextField.getText(), _mapsDict.get(MapComboBox.getSelectedItem().toString()));
|
_mapCollection.AddMap(MapNameTextField.getText(), _mapsDict.get(MapComboBox.getSelectedItem().toString()));
|
||||||
|
_logger.log(Level.INFO, "Добавлена карта: "+MapNameTextField.getText());
|
||||||
ReloadMaps();
|
ReloadMaps();
|
||||||
}//GEN-LAST:event_AddMapButtonMouseClicked
|
}//GEN-LAST:event_AddMapButtonMouseClicked
|
||||||
private void ReloadMaps() {
|
private void ReloadMaps() {
|
||||||
@@ -414,6 +492,7 @@ private void ReloadMaps() {
|
|||||||
"Удаление", JOptionPane.YES_NO_OPTION) == 0) {
|
"Удаление", JOptionPane.YES_NO_OPTION) == 0) {
|
||||||
_mapCollection.DelMap(MapList.getSelectedValue().toString());
|
_mapCollection.DelMap(MapList.getSelectedValue().toString());
|
||||||
ReloadMaps();
|
ReloadMaps();
|
||||||
|
_logger.log(Level.INFO, "Удалена карта: "+MapList.getSelectedValue().toString());
|
||||||
}
|
}
|
||||||
}//GEN-LAST:event_DeleteMapButtonMouseClicked
|
}//GEN-LAST:event_DeleteMapButtonMouseClicked
|
||||||
|
|
||||||
@@ -454,6 +533,7 @@ private void ReloadMaps() {
|
|||||||
}
|
}
|
||||||
img = _mapCollection.Get((String)MapList.getSelectedValue()).ShowSet();
|
img = _mapCollection.Get((String)MapList.getSelectedValue()).ShowSet();
|
||||||
Draw();
|
Draw();
|
||||||
|
_logger.log(Level.INFO, "Переход на карту: "+MapList.getSelectedValue().toString());
|
||||||
}//GEN-LAST:event_MapListValueChanged
|
}//GEN-LAST:event_MapListValueChanged
|
||||||
|
|
||||||
private void DeletedFormOpenMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_DeletedFormOpenMouseClicked
|
private void DeletedFormOpenMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_DeletedFormOpenMouseClicked
|
||||||
@@ -474,6 +554,97 @@ private void ReloadMaps() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}//GEN-LAST:event_DeletedFormOpenMouseClicked
|
}//GEN-LAST:event_DeletedFormOpenMouseClicked
|
||||||
|
|
||||||
|
private void jMenuSaveMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jMenuSaveMouseClicked
|
||||||
|
JFileChooser fs = new JFileChooser();
|
||||||
|
fs.setAcceptAllFileFilterUsed(false);
|
||||||
|
FileNameExtensionFilter filter = new FileNameExtensionFilter(".txt file", "txt");
|
||||||
|
fs.addChoosableFileFilter(filter);
|
||||||
|
fs.setDialogTitle("Сохранение карты");
|
||||||
|
int result = fs.showSaveDialog(null);
|
||||||
|
if (result == JFileChooser.APPROVE_OPTION) {
|
||||||
|
try{
|
||||||
|
File selectedFile = fs.getSelectedFile();
|
||||||
|
_mapCollection.SaveMap(selectedFile.getPath(), MapList.getSelectedValue().toString());
|
||||||
|
_logger.log(Level.INFO, "Успешное сохранение в файл: "+selectedFile.getPath());
|
||||||
|
JOptionPane.showMessageDialog(null, "Сохранение карты прошло успешно", "Результат",JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.log(Level.INFO, "Данные не сохранились: "+ex.getMessage());
|
||||||
|
JOptionPane.showMessageDialog(null, "Не сохранилась карта: "+ex.getMessage(), "Результат",JOptionPane.ERROR_MESSAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}//GEN-LAST:event_jMenuSaveMouseClicked
|
||||||
|
|
||||||
|
private void jMenuLoadMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jMenuLoadMouseClicked
|
||||||
|
JFileChooser fs = new JFileChooser();
|
||||||
|
fs.setAcceptAllFileFilterUsed(false);
|
||||||
|
FileNameExtensionFilter filter = new FileNameExtensionFilter(".txt file", "txt");
|
||||||
|
fs.addChoosableFileFilter(filter);
|
||||||
|
fs.setDialogTitle("Сохранение карты");
|
||||||
|
int result = fs.showSaveDialog(null);
|
||||||
|
if (result == JFileChooser.APPROVE_OPTION) {
|
||||||
|
try
|
||||||
|
{
|
||||||
|
File selectedFile = fs.getSelectedFile();
|
||||||
|
_mapCollection.LoadMap(selectedFile.getPath());
|
||||||
|
|
||||||
|
_logger.log(Level.INFO, "Успешная загрузка из файла: "+selectedFile.getPath());
|
||||||
|
JOptionPane.showMessageDialog(null, "Загрузка карты прошла успешно", "Результат",JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
ReloadMaps();
|
||||||
|
}
|
||||||
|
catch(Exception ex)
|
||||||
|
{
|
||||||
|
_logger.log(Level.WARNING, "Не загрузилось: "+ex.getMessage());
|
||||||
|
JOptionPane.showMessageDialog(null, "Не сохранилась карта: "+ex.getMessage(), "Результат",JOptionPane.ERROR_MESSAGE);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}//GEN-LAST:event_jMenuLoadMouseClicked
|
||||||
|
|
||||||
|
private void jMenuLoadObjMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jMenuLoadObjMouseClicked
|
||||||
|
JFileChooser fs = new JFileChooser();
|
||||||
|
fs.setAcceptAllFileFilterUsed(false);
|
||||||
|
FileNameExtensionFilter filter = new FileNameExtensionFilter(".txt file", "txt");
|
||||||
|
fs.addChoosableFileFilter(filter);
|
||||||
|
fs.setDialogTitle("Загрузка");
|
||||||
|
int result = fs.showSaveDialog(null);
|
||||||
|
if (result == JFileChooser.APPROVE_OPTION) {
|
||||||
|
try{
|
||||||
|
File selectedFile = fs.getSelectedFile();
|
||||||
|
_mapCollection.LoadData(selectedFile.getPath());
|
||||||
|
ReloadMaps();
|
||||||
|
JOptionPane.showMessageDialog(null, "Загрузка прошла успешно", "Результат",JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
JOptionPane.showMessageDialog(null, "Не удалось загрузить: "+ex.getMessage(), "Результат",JOptionPane.ERROR_MESSAGE);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}//GEN-LAST:event_jMenuLoadObjMouseClicked
|
||||||
|
|
||||||
|
private void jMenuSaveObjMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jMenuSaveObjMouseClicked
|
||||||
|
JFileChooser fs = new JFileChooser();
|
||||||
|
fs.setAcceptAllFileFilterUsed(false);
|
||||||
|
FileNameExtensionFilter filter = new FileNameExtensionFilter(".txt file", "txt");
|
||||||
|
fs.addChoosableFileFilter(filter);
|
||||||
|
fs.setDialogTitle("Сохранение");
|
||||||
|
int result = fs.showSaveDialog(null);
|
||||||
|
if (result == JFileChooser.APPROVE_OPTION) {
|
||||||
|
try{
|
||||||
|
File selectedFile = fs.getSelectedFile();
|
||||||
|
_mapCollection.SaveData(selectedFile.getPath()+".txt");
|
||||||
|
JOptionPane.showMessageDialog(null, "Сохранение прошло успешно", "Результат",JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
}
|
||||||
|
catch(Exception ex)
|
||||||
|
{
|
||||||
|
JOptionPane.showMessageDialog(null, "Не сохранилось", "Результат",JOptionPane.ERROR_MESSAGE);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}//GEN-LAST:event_jMenuSaveObjMouseClicked
|
||||||
public void Move(String name)
|
public void Move(String name)
|
||||||
{
|
{
|
||||||
switch (name)
|
switch (name)
|
||||||
@@ -538,12 +709,17 @@ private void ReloadMaps() {
|
|||||||
private javax.swing.JComboBox<String> MapComboBox;
|
private javax.swing.JComboBox<String> MapComboBox;
|
||||||
private javax.swing.JList<String> MapList;
|
private javax.swing.JList<String> MapList;
|
||||||
private java.awt.TextField MapNameTextField;
|
private java.awt.TextField MapNameTextField;
|
||||||
|
private javax.swing.JMenuBar MenuBar;
|
||||||
private javax.swing.JPanel PicturePanel;
|
private javax.swing.JPanel PicturePanel;
|
||||||
private java.awt.Button RightButton;
|
private java.awt.Button RightButton;
|
||||||
private java.awt.Button StoreButton;
|
private java.awt.Button StoreButton;
|
||||||
private java.awt.TextField TextBoxPosition;
|
private java.awt.TextField TextBoxPosition;
|
||||||
private java.awt.Button UpButton;
|
private java.awt.Button UpButton;
|
||||||
private javax.swing.JLabel jLabel1;
|
private javax.swing.JLabel jLabel1;
|
||||||
|
private javax.swing.JMenu jMenuLoad;
|
||||||
|
private javax.swing.JMenu jMenuLoadObj;
|
||||||
|
private javax.swing.JMenu jMenuSave;
|
||||||
|
private javax.swing.JMenu jMenuSaveObj;
|
||||||
private javax.swing.JScrollPane jScrollPane2;
|
private javax.swing.JScrollPane jScrollPane2;
|
||||||
// End of variables declaration//GEN-END:variables
|
// End of variables declaration//GEN-END:variables
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,4 +30,8 @@ public interface IDrawingObject {
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
HashMap<String, Float> GetCurrentPosition();
|
HashMap<String, Float> GetCurrentPosition();
|
||||||
|
//Получение информации по объекту
|
||||||
|
String GetInfo();
|
||||||
|
|
||||||
|
public DrawingArmoredVehicle GetMachine();
|
||||||
}
|
}
|
||||||
|
|||||||
5
ArmoredVehicle/src/MachineNotFoundException.java
Normal file
5
ArmoredVehicle/src/MachineNotFoundException.java
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
public class MachineNotFoundException extends Exception {
|
||||||
|
public MachineNotFoundException(int i){
|
||||||
|
super("Не найден объект по позиции "+i);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -24,13 +24,15 @@ public class MapWithSetMachineGeneric<T extends IDrawingObject, U extends Abstra
|
|||||||
_pictureHeight = picHeight;
|
_pictureHeight = picHeight;
|
||||||
_map = map;
|
_map = map;
|
||||||
}
|
}
|
||||||
|
public void Clear() {
|
||||||
public int add(T car)
|
_setCars.Clear();
|
||||||
|
}
|
||||||
|
public int add(T car) throws StorageOverflowException
|
||||||
{
|
{
|
||||||
return _setCars.Insert(car);
|
return _setCars.Insert(car);
|
||||||
}
|
}
|
||||||
|
|
||||||
public T remove(int position)
|
public T remove(int position) throws MachineNotFoundException
|
||||||
{
|
{
|
||||||
return _setCars.Remove(position);
|
return _setCars.Remove(position);
|
||||||
}
|
}
|
||||||
@@ -77,8 +79,16 @@ public class MapWithSetMachineGeneric<T extends IDrawingObject, U extends Abstra
|
|||||||
var car = _setCars.Get(j);
|
var car = _setCars.Get(j);
|
||||||
if (car != null)
|
if (car != null)
|
||||||
{
|
{
|
||||||
|
try {
|
||||||
_setCars.Insert(car, i);
|
_setCars.Insert(car, i);
|
||||||
|
} catch (StorageOverflowException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
try {
|
||||||
_setCars.Remove(j);
|
_setCars.Remove(j);
|
||||||
|
} catch (MachineNotFoundException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -118,4 +128,33 @@ public class MapWithSetMachineGeneric<T extends IDrawingObject, U extends Abstra
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Получение данных в виде строки
|
||||||
|
public String GetData(char separatorType, char separatorData)
|
||||||
|
{
|
||||||
|
String data = _map.getClass().getName()+separatorType;
|
||||||
|
data = data.substring(4);
|
||||||
|
for (var machine : _setCars)
|
||||||
|
{
|
||||||
|
data += machine.GetInfo()+separatorData;
|
||||||
|
}
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
public String GetDataMap(char separatorType, char separatorData)
|
||||||
|
{
|
||||||
|
String data = _map.getClass().getName()+separatorType;
|
||||||
|
data = data.substring(4) + '\n';
|
||||||
|
for (var machine : _setCars)
|
||||||
|
{
|
||||||
|
data += machine.GetInfo()+separatorData+'\n';
|
||||||
|
}
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
// Загрузка списка из массива строк
|
||||||
|
public void LoadData(String[] records) throws StorageOverflowException
|
||||||
|
{
|
||||||
|
for (var rec : records)
|
||||||
|
{
|
||||||
|
_setCars.Insert((T)DrawingObject.Create(rec));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +1,24 @@
|
|||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.BufferedWriter;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
|
import java.io.FileReader;
|
||||||
|
import java.io.FileWriter;
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
import java.util.logging.Logger;
|
||||||
import javax.swing.JOptionPane;
|
import javax.swing.JOptionPane;
|
||||||
|
|
||||||
public class MapsCollection {
|
public class MapsCollection {
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Словарь (хранилище) с картами
|
/// Словарь (хранилище) с картами
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Map <String, MapWithSetMachineGeneric<DrawingObject, AbstractMap>> _mapStorages;
|
Map <String, MapWithSetMachineGeneric<IDrawingObject, AbstractMap>> _mapStorages;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Возвращение списка названий карт
|
/// Возвращение списка названий карт
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -22,6 +31,10 @@ public class MapsCollection {
|
|||||||
/// Высота окна отрисовки
|
/// Высота окна отрисовки
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private int _pictureHeight;
|
private int _pictureHeight;
|
||||||
|
/// Разделитель для записи информации по элементу словаря в файл
|
||||||
|
private final char separatorDict = '|';
|
||||||
|
/// Разделитель для записей коллекции данных в файл
|
||||||
|
private final char separatorData = ';';
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Конструктор
|
/// Конструктор
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -29,7 +42,7 @@ public class MapsCollection {
|
|||||||
/// <param name="pictureHeight"></param>
|
/// <param name="pictureHeight"></param>
|
||||||
public MapsCollection(int pictureWidth, int pictureHeight)
|
public MapsCollection(int pictureWidth, int pictureHeight)
|
||||||
{
|
{
|
||||||
_mapStorages = new HashMap<String, MapWithSetMachineGeneric<DrawingObject, AbstractMap>>();
|
_mapStorages = new HashMap<String, MapWithSetMachineGeneric<IDrawingObject, AbstractMap>>();
|
||||||
Keys = new ArrayList<String>(_mapStorages.keySet());
|
Keys = new ArrayList<String>(_mapStorages.keySet());
|
||||||
_pictureWidth = pictureWidth;
|
_pictureWidth = pictureWidth;
|
||||||
_pictureHeight = pictureHeight;
|
_pictureHeight = pictureHeight;
|
||||||
@@ -59,7 +72,7 @@ public class MapsCollection {
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var NewElem = new MapWithSetMachineGeneric<DrawingObject, AbstractMap>(
|
var NewElem = new MapWithSetMachineGeneric<IDrawingObject, AbstractMap>(
|
||||||
_pictureWidth, _pictureHeight, map);
|
_pictureWidth, _pictureHeight, map);
|
||||||
_mapStorages.put(name, NewElem);
|
_mapStorages.put(name, NewElem);
|
||||||
}
|
}
|
||||||
@@ -85,7 +98,7 @@ public class MapsCollection {
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="ind"></param>
|
/// <param name="ind"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public MapWithSetMachineGeneric<DrawingObject, AbstractMap> Get(String ind)
|
public MapWithSetMachineGeneric<IDrawingObject, AbstractMap> Get(String ind)
|
||||||
{
|
{
|
||||||
if(_mapStorages.keySet().contains(ind))
|
if(_mapStorages.keySet().contains(ind))
|
||||||
{
|
{
|
||||||
@@ -94,12 +107,135 @@ public class MapsCollection {
|
|||||||
return null;
|
return null;
|
||||||
|
|
||||||
}
|
}
|
||||||
public DrawingObject Get(String name, int ind) {
|
public IDrawingObject Get(String name, int ind) {
|
||||||
if (_mapStorages.containsKey(name))
|
if (_mapStorages.containsKey(name))
|
||||||
{
|
{
|
||||||
return _mapStorages.get(name).GetMachineInList(ind);
|
return _mapStorages.get(name).GetMachineInList(ind);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
}
|
||||||
|
/// Сохранение информации по тракторам в хранилище в файл
|
||||||
|
public void SaveData(String filename) {
|
||||||
|
File file = new File(filename);
|
||||||
|
|
||||||
|
if (file.exists()) {
|
||||||
|
file.delete();
|
||||||
|
}
|
||||||
|
try (BufferedWriter br = new BufferedWriter(new FileWriter(filename)))
|
||||||
|
{
|
||||||
|
br.write("MapsCollection\n");
|
||||||
|
for (var storage : _mapStorages.entrySet()) {
|
||||||
|
br.write(storage.getKey() + separatorDict + storage.getValue().GetData(separatorDict, separatorData) + "\n");
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// Загрузка информации по машинам в депо из файла
|
||||||
|
public void LoadData(String filename) throws FileNotFoundException
|
||||||
|
{
|
||||||
|
if (!(new File(filename).exists()))
|
||||||
|
{
|
||||||
|
throw new FileNotFoundException("Файл не найден");
|
||||||
|
}
|
||||||
|
try (BufferedReader br = new BufferedReader(new FileReader(filename)))
|
||||||
|
{
|
||||||
|
String str = "";
|
||||||
|
if ((str = br.readLine()) == null || !str.contains("MapsCollection"))
|
||||||
|
{
|
||||||
|
//если нет такой записи, то это не те данные
|
||||||
|
throw new IllegalArgumentException("Формат данных в файле неправильный");
|
||||||
|
}
|
||||||
|
//очищаем записи
|
||||||
|
_mapStorages.clear();
|
||||||
|
while ((str = br.readLine()) != null)
|
||||||
|
{
|
||||||
|
var elem = str.split(String.format("\\%c",separatorDict));
|
||||||
|
AbstractMap map = null;
|
||||||
|
switch (elem[1])
|
||||||
|
{
|
||||||
|
case "SimpleMap":
|
||||||
|
map = new SimpleMap();
|
||||||
|
break;
|
||||||
|
case "VerticalMap":
|
||||||
|
map = new VerticalMap();
|
||||||
|
break;
|
||||||
|
case "HorizontalMap":
|
||||||
|
map = new HorizontalMap();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
_mapStorages.put(elem[0], new MapWithSetMachineGeneric<IDrawingObject, AbstractMap>(_pictureWidth, _pictureHeight, map));
|
||||||
|
_mapStorages.get(elem[0]).LoadData(elem[2].split(separatorData + "\n?"));
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
catch (StorageOverflowException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public boolean SaveMap(String filename, String index) {
|
||||||
|
File file = new File(filename);
|
||||||
|
if (file.exists()) {
|
||||||
|
file.delete();
|
||||||
|
}
|
||||||
|
var elem = _mapStorages.get(index);
|
||||||
|
if (elem==null)
|
||||||
|
return false;
|
||||||
|
try (BufferedWriter br = new BufferedWriter(new FileWriter(filename)))
|
||||||
|
{
|
||||||
|
br.write("MapsCollection\n");
|
||||||
|
br.write(index + separatorDict);
|
||||||
|
br.write(elem.GetDataMap(separatorDict, separatorData));
|
||||||
|
}
|
||||||
|
catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
public boolean LoadMap(String filename) throws StorageOverflowException {
|
||||||
|
if (!(new File(filename).exists()))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
try (BufferedReader br = new BufferedReader(new FileReader(filename)))
|
||||||
|
{
|
||||||
|
String str = "";
|
||||||
|
if ((str = br.readLine()) == null || !str.contains("MapsCollection"))
|
||||||
|
{
|
||||||
|
//если нет такой записи, то это не те данные
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if ((str = br.readLine()) != null)
|
||||||
|
{
|
||||||
|
var elem = str.split(String.format("\\%c",separatorDict));
|
||||||
|
AbstractMap map = null;
|
||||||
|
switch (elem[1])
|
||||||
|
{
|
||||||
|
case "SimpleMap":
|
||||||
|
map = new SimpleMap();
|
||||||
|
break;
|
||||||
|
case "VerticalMap":
|
||||||
|
map = new VerticalMap();
|
||||||
|
break;
|
||||||
|
case "HorizontalMap":
|
||||||
|
map = new HorizontalMap();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if(_mapStorages.containsKey(elem[0])){
|
||||||
|
_mapStorages.get(elem[0]).Clear();
|
||||||
|
}
|
||||||
|
else _mapStorages.put(elem[0], new MapWithSetMachineGeneric<IDrawingObject, AbstractMap>(_pictureWidth, _pictureHeight, map));
|
||||||
|
|
||||||
|
while((str = br.readLine()) != null) {
|
||||||
|
_mapStorages.get(elem[0]).LoadData(str.split(separatorData + "\n?"));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -14,51 +14,31 @@ public class SetArmoredCarsGeneric<T> implements Iterable<T>{
|
|||||||
return _places.isEmpty() ? 0 : _places.size();
|
return _places.isEmpty() ? 0 : _places.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
public int Insert(T armoredCar)
|
public void Clear() {
|
||||||
|
_places.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int Insert(T armoredCar) throws StorageOverflowException
|
||||||
{
|
{
|
||||||
if(_places.size()+1 <= _MaxCount) return Insert(armoredCar, 0);
|
if(_places.size()+1 <= _MaxCount) return Insert(armoredCar, 0);
|
||||||
else return -1;
|
else return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int Insert(T armoredCar, int position)
|
public int Insert(T armoredCar, int position) throws StorageOverflowException
|
||||||
{
|
{
|
||||||
if ((position < 0 || position > getCount()))
|
if ((position < 0 || position > getCount()))
|
||||||
return -1;
|
return -1;
|
||||||
// if(_places.isEmpty())
|
|
||||||
// {
|
|
||||||
// _places.add(armoredCar);
|
|
||||||
// return 0;
|
|
||||||
// }
|
|
||||||
// if ((_places.get(position) != null) && !_places.isEmpty())
|
|
||||||
// {
|
|
||||||
// int index_empty = -1;
|
|
||||||
// // поиск первого пустого элемента
|
|
||||||
// for (int i = position + 1; i < _MaxCount; i++)
|
|
||||||
// {
|
|
||||||
// if (_places.get(i) == null)
|
|
||||||
// {
|
|
||||||
// index_empty = i;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// if (index_empty == -1)
|
|
||||||
// return -1;
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// for (int i = index_empty; i > position; i--)
|
|
||||||
// {
|
|
||||||
// _places.set(i, _places.get(i-1));
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
_places.add(position, armoredCar);
|
_places.add(position, armoredCar);
|
||||||
|
|
||||||
return position;
|
return position;
|
||||||
}
|
}
|
||||||
|
|
||||||
public T Remove(int position)
|
public T Remove(int position) throws MachineNotFoundException
|
||||||
{
|
{
|
||||||
if (position < 0 || position >= getCount() || _places.get(position) == null)
|
if (position < 0 || position >= getCount())
|
||||||
return null;
|
throw new MachineNotFoundException(position);
|
||||||
|
if (_places.get(position) == null)
|
||||||
|
throw new MachineNotFoundException(position);
|
||||||
T armoredCar = _places.get(position);
|
T armoredCar = _places.get(position);
|
||||||
_places.set(position, null);
|
_places.set(position, null);
|
||||||
|
|
||||||
@@ -74,7 +54,11 @@ public class SetArmoredCarsGeneric<T> implements Iterable<T>{
|
|||||||
public void Set(int position, T value){
|
public void Set(int position, T value){
|
||||||
if (position < 0 || position + 1 >= getCount())
|
if (position < 0 || position + 1 >= getCount())
|
||||||
return;
|
return;
|
||||||
|
try {
|
||||||
Insert(value, position);
|
Insert(value, position);
|
||||||
|
} catch (StorageOverflowException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
5
ArmoredVehicle/src/StorageOverflowException.java
Normal file
5
ArmoredVehicle/src/StorageOverflowException.java
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
public class StorageOverflowException extends Exception {
|
||||||
|
public StorageOverflowException(int count){
|
||||||
|
super("В наборе превышено допустимое количество: "+count);
|
||||||
|
}
|
||||||
|
}
|
||||||
9
ArmoredVehicle/src/log.config
Normal file
9
ArmoredVehicle/src/log.config
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
handlers = java.util.logging.FileHandler
|
||||||
|
|
||||||
|
java.util.logging.FileHandler.level = INFO
|
||||||
|
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
|
||||||
|
java.util.logging.FileHandler.append = true
|
||||||
|
java.util.logging.FileHandler.pattern = log.txt
|
||||||
|
|
||||||
|
java.util.logging.ConsoleHandler.level = INFO
|
||||||
|
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
|
||||||
Reference in New Issue
Block a user