12 Commits

Author SHA1 Message Date
DozorovaA.A
6477ad58b7 clear 2022-12-03 13:31:57 +04:00
DozorovaA.A
aa5414867c done hard path 2022-12-03 13:29:08 +04:00
DozorovaA.A
da6cf36c9d add logic 2022-11-30 10:43:15 +04:00
DozorovaA.A
b0f86f1f75 add all form 2022-11-30 10:18:42 +04:00
DozorovaA.A
3023f5b279 add form 2022-11-30 09:57:51 +04:00
DozorovaA.A
d7af21d278 done hard path 2022-11-24 19:59:40 +04:00
DozorovaA.A
f5b2079766 base part done 2022-11-23 16:10:19 +04:00
DozorovaA.A
515c1d7f04 Merge branch 'FourthLabWork' into UpdateFourthLabWork 2022-11-16 16:25:26 +04:00
DozorovaA.A
62c4dfbe71 update gitignore 2022-11-15 20:32:26 +04:00
DozorovaA.A
cfec576958 try fourth lab 2022-11-15 20:30:55 +04:00
c5b0aa9297 add iterator 2022-11-05 13:29:51 +04:00
b7dba8c76a array to list 2022-11-05 12:52:46 +04:00
16 changed files with 1916 additions and 308 deletions

1
.gitignore vendored
View File

@@ -34,3 +34,4 @@ dist/
nbdist/
.nb-gradle/
/.vs/PIbd-22_DozorovaAA_ArmoredVehicle_Hard/v17/.suo

View File

@@ -0,0 +1,9 @@
{
"ExpandedNodes": [
"",
"\\ArmoredVehicle",
"\\ArmoredVehicle\\src"
],
"SelectedNode": "\\ArmoredVehicle\\src\\PolimorphClass.java",
"PreviewInSolutionExplorer": false
}

Binary file not shown.

View File

@@ -136,24 +136,28 @@ public abstract class AbstractMap {
}
int x = random.nextInt(0, 10);
int y = random.nextInt(0, 10);
drawingObject.SetObject(x, y, width, height);
HashMap<String, Float> hashMap = drawingObject.GetCurrentPosition();
float left = hashMap.get("Left");
float right = hashMap.get("Right");
float top = hashMap.get("Top");
float bottom = hashMap.get("Bottom");
for (int i = (int)(x / size_x); i <= (int) (right / size_x); i++)
{
for (int j = (int)(y / size_y); j <= (int) (bottom / size_y); j++)
int beginI = (int)(x / size_x);
int endI = (int)(hashMap.get("Right") / size_x);
int beginJ = (int)(y / size_y);
int endJ = (int)(hashMap.get("Bottom") / size_y);
for (int i = beginI; i <= endI; i++)
{
if (map[i][j] == _barrier)
for(int j = beginJ; j <= endJ; j++)
{
return false;
if(map[i][j] == _barrier)
{
return false;
}
}
}
}
drawingObject.SetObject(x, y, width, height);
return true;
}
private Image DrawMapWithObject()

View File

@@ -23,11 +23,11 @@ public class DrawingArmoredVehicle{
/// <summary>
/// Ширина окна отрисовки
/// </summary>
protected int _pictureWidth = 0;
protected int _pictureWidth = 100;
/// <summary>
/// Высота окна отрисовки
/// </summary>
protected int _pictureHeight = 0;
protected int _pictureHeight = 100;
/// <summary>
/// Ширина отрисовки
/// </summary>
@@ -50,7 +50,7 @@ public class DrawingArmoredVehicle{
{
Random r = new Random();
ArmoredVehicle = new ArmoredVehicleEntity(speed, weight, bodyColor);
int variant = r.nextInt(3);
int variant = 0;
switch(variant)
{
case 0:
@@ -78,9 +78,9 @@ public class DrawingArmoredVehicle{
public DrawingArmoredVehicle(ArmoredVehicleEntity machine, IDrawingRoller rollers)
{
ArmoredVehicle = machine;
roller = rollers;
roller = rollers;
}
/// <summary>
/// Установка позиции
/// </summary>

View File

@@ -38,4 +38,8 @@ private DrawingArmoredVehicle _machine = null;
public HashMap<String, Float> GetCurrentPosition() {
return _machine.GetCurrentPosition();
}
public DrawingArmoredVehicle GetMachine()
{
return _machine;
}
}

View 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="&#x41f;&#x430;&#x440;&#x430;&#x43c;&#x435;&#x442;&#x440;&#x44b;"/>
</Properties>
</Component>
<Component class="java.awt.Label" name="labelSpeed">
<Properties>
<Property name="text" type="java.lang.String" value="&#x421;&#x43a;&#x43e;&#x440;&#x43e;&#x441;&#x442;&#x44c;"/>
</Properties>
</Component>
<Component class="java.awt.Label" name="labelWeight">
<Properties>
<Property name="text" type="java.lang.String" value="&#x412;&#x435;&#x441;"/>
</Properties>
</Component>
<Component class="java.awt.Checkbox" name="checkboxTower">
<Properties>
<Property name="label" type="java.lang.String" value="&#x41f;&#x440;&#x438;&#x437;&#x43d;&#x430;&#x43a; &#x43d;&#x430;&#x43b;&#x438;&#x447;&#x438;&#x44f; &#x431;&#x430;&#x448;&#x43d;&#x438;"/>
<Property name="name" type="java.lang.String" value="&#x411;&#x430;&#x448;&#x43d;&#x44f;" noResource="true"/>
</Properties>
</Component>
<Component class="java.awt.Checkbox" name="checkboxGun">
<Properties>
<Property name="label" type="java.lang.String" value="&#x41f;&#x440;&#x438;&#x437;&#x43d;&#x430;&#x43a; &#x43d;&#x430;&#x43b;&#x438;&#x447;&#x438;&#x44f; &#x43e;&#x440;&#x443;&#x434;&#x438;&#x44f;"/>
</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="&#x426;&#x432;&#x435;&#x442;&#x430;"/>
</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="&#x41a;&#x43e;&#x43b;&#x438;&#x447;&#x435;&#x441;&#x442;&#x432;&#x43e; &#x43a;&#x430;&#x442;&#x43a;&#x43e;&#x432;"/>
</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="&lt;String&gt;"/>
</AuxValues>
</Component>
<Component class="javax.swing.JLabel" name="LabelModify">
<Properties>
<Property name="text" type="java.lang.String" value="&#x41f;&#x440;&#x43e;&#x434;&#x432;&#x438;&#x43d;&#x443;&#x442;&#x44b;&#x439;"/>
<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="&#x41f;&#x440;&#x43e;&#x441;&#x442;&#x43e;&#x439;"/>
<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="&#x41f;&#x435;&#x440;&#x432;&#x44b;&#x439; &#x442;&#x438;&#x43f;"/>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="LabelSecondRoller">
<Properties>
<Property name="text" type="java.lang.String" value="&#x412;&#x442;&#x43e;&#x440;&#x43e;&#x439; &#x442;&#x438;&#x43f;"/>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="LabelSimpleRollers">
<Properties>
<Property name="text" type="java.lang.String" value="&#x41f;&#x440;&#x43e;&#x441;&#x442;&#x44b;&#x435;"/>
</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="&#x414;&#x43e;&#x43f;. &#x446;&#x432;&#x435;&#x442;"/>
<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="&#x426;&#x432;&#x435;&#x442;"/>
<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="&#x414;&#x43e;&#x431;&#x430;&#x432;&#x438;&#x442;&#x44c;"/>
</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="&#x41e;&#x442;&#x43c;&#x435;&#x43d;&#x430;"/>
</Properties>
</Component>
</SubComponents>
</Form>

View File

@@ -0,0 +1,597 @@
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 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 void AddEvent(Consumer<DrawingArmoredVehicle> ev) { EventAddMachine = ev; }
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
}

View File

@@ -24,7 +24,7 @@
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<Component id="PicturePanel" pref="336" max="32767" attributes="0"/>
<Component id="PicturePanel" pref="438" max="32767" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="InstrumentPanel" min="-2" max="-2" attributes="0"/>
</Group>
@@ -32,8 +32,11 @@
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Component id="PicturePanel" max="32767" attributes="0"/>
<Component id="InstrumentPanel" alignment="0" max="32767" attributes="0"/>
<Group type="102" alignment="0" attributes="0">
<Component id="PicturePanel" min="-2" pref="597" max="-2" attributes="0"/>
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
@@ -72,41 +75,55 @@
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<Group type="102" attributes="0">
<Component id="jLabel1" min="-2" max="-2" attributes="0"/>
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" pref="22" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="MapComboBox" pref="165" max="32767" attributes="0"/>
<Component id="AddMachineButton" max="32767" attributes="0"/>
<Component id="TextBoxPosition" alignment="0" max="32767" attributes="0"/>
<Component id="DeleteButton" alignment="0" max="32767" attributes="0"/>
<Component id="StoreButton" alignment="0" max="32767" attributes="0"/>
<Component id="MapButton" alignment="0" max="32767" attributes="0"/>
</Group>
<Group type="102" attributes="0">
<EmptySpace max="-2" attributes="0"/>
</Group>
<Group type="102" alignment="1" attributes="0">
<EmptySpace max="32767" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="25" pref="25" max="-2" attributes="0"/>
<Component id="UpButton" min="-2" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="27" max="-2" attributes="0"/>
</Group>
<Group type="103" alignment="0" groupAlignment="0" attributes="0">
<Component id="RightButton" alignment="1" min="-2" max="-2" attributes="0"/>
<Group type="102" alignment="1" attributes="0">
<Component id="LeftButton" min="-2" pref="22" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="1" max="-2" attributes="0"/>
<Component id="DownButton" min="-2" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="29" max="-2" attributes="0"/>
<Component id="AddMapButton" alignment="0" max="32767" attributes="0"/>
<Group type="102" attributes="0">
<Group type="103" groupAlignment="0" attributes="0">
<Component id="MapComboBox" max="32767" attributes="0"/>
<Component id="MapNameTextField" alignment="1" max="32767" attributes="0"/>
<Component id="jScrollPane2" alignment="1" max="32767" attributes="0"/>
<Component id="DeleteMapButton" alignment="1" max="32767" attributes="0"/>
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" pref="12" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<Component id="DeletedFormOpen" min="-2" pref="122" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="25" pref="25" max="-2" attributes="0"/>
<Component id="UpButton" min="-2" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="27" max="-2" attributes="0"/>
</Group>
<Group type="103" alignment="0" groupAlignment="0" attributes="0">
<Component id="RightButton" alignment="1" min="-2" max="-2" attributes="0"/>
<Group type="102" alignment="1" attributes="0">
<Component id="LeftButton" min="-2" pref="22" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="1" max="-2" attributes="0"/>
<Component id="DownButton" min="-2" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="29" max="-2" attributes="0"/>
</Group>
</Group>
</Group>
<EmptySpace min="-2" pref="39" max="-2" attributes="0"/>
</Group>
<Component id="AddMachineButton" max="32767" attributes="0"/>
<Component id="TextBoxPosition" alignment="0" max="32767" attributes="0"/>
<Component id="DeleteButton" alignment="0" max="32767" attributes="0"/>
<Component id="StoreButton" alignment="0" max="32767" attributes="0"/>
<Component id="MapButton" alignment="0" max="32767" attributes="0"/>
</Group>
</Group>
</Group>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
<EmptySpace min="-2" pref="49" max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
@@ -114,9 +131,17 @@
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<Component id="jLabel1" min="-2" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="21" max="-2" attributes="0"/>
<Component id="MapNameTextField" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="MapComboBox" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="AddMapButton" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="jScrollPane2" min="-2" pref="117" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="22" max="-2" attributes="0"/>
<Component id="DeleteMapButton" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="AddMachineButton" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="TextBoxPosition" min="-2" max="-2" attributes="0"/>
@@ -126,9 +151,12 @@
<Component id="StoreButton" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="MapButton" min="-2" max="-2" attributes="0"/>
<EmptySpace pref="28" max="32767" attributes="0"/>
<Component id="UpButton" min="-2" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="1" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="25" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="UpButton" min="-2" max="-2" attributes="0"/>
<Component id="DeletedFormOpen" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="1" attributes="0">
<Group type="103" groupAlignment="0" max="-2" attributes="0">
@@ -139,7 +167,7 @@
</Group>
<Component id="DownButton" alignment="1" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
@@ -265,6 +293,54 @@
<AuxValue name="JavaCodeGenerator_CreateCodeCustom" type="java.lang.String" value="new java.awt.Button()"/>
</AuxValues>
</Component>
<Component class="java.awt.TextField" name="MapNameTextField">
</Component>
<Component class="java.awt.Button" name="AddMapButton">
<Properties>
<Property name="label" type="java.lang.String" value="&#x414;&#x43e;&#x431;&#x430;&#x432;&#x438;&#x442;&#x44c; &#x43a;&#x430;&#x440;&#x442;&#x443;"/>
</Properties>
<Events>
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="AddMapButtonMouseClicked"/>
</Events>
</Component>
<Component class="java.awt.Button" name="DeleteMapButton">
<Properties>
<Property name="label" type="java.lang.String" value="&#x423;&#x434;&#x430;&#x43b;&#x438;&#x442;&#x44c; &#x43a;&#x430;&#x440;&#x442;&#x443;"/>
</Properties>
<Events>
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="DeleteMapButtonMouseClicked"/>
</Events>
</Component>
<Container class="javax.swing.JScrollPane" name="jScrollPane2">
<AuxValues>
<AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
</AuxValues>
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
<SubComponents>
<Component class="javax.swing.JList" name="MapList">
<Properties>
<Property name="model" type="javax.swing.ListModel" editor="org.netbeans.modules.form.editors2.ListModelEditor">
<StringArray count="0"/>
</Property>
</Properties>
<Events>
<EventHandler event="valueChanged" listener="javax.swing.event.ListSelectionListener" parameters="javax.swing.event.ListSelectionEvent" handler="MapListValueChanged"/>
</Events>
<AuxValues>
<AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="&lt;String&gt;"/>
</AuxValues>
</Component>
</SubComponents>
</Container>
<Component class="javax.swing.JButton" name="DeletedFormOpen">
<Properties>
<Property name="text" type="java.lang.String" value="&#x423;&#x434;&#x430;&#x43b;&#x435;&#x43d;&#x43d;&#x44b;&#x435;"/>
</Properties>
<Events>
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="DeletedFormOpenMouseClicked"/>
</Events>
</Component>
</SubComponents>
</Container>
</SubComponents>

View File

@@ -1,21 +1,40 @@
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.HashMap;
import java.util.LinkedList;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Queue;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class FormMapWithSetMachine extends javax.swing.JFrame {
private Image img;
private MapWithSetArmoredCarsGeneric<DrawingObject, AbstractMap> _mapCollectionGeneric;
private MapsCollection _mapCollection;
private final HashMap<String, AbstractMap> _mapsDict = new HashMap<>() {{
put("Простая карта", new SimpleMap());
put("Вертикальная карта", new VerticalMap());
put("Горизонтальная карта", new HorizontalMap());
}};
public Queue<DrawingArmoredVehicle> deleted = new LinkedList<>();
public FormMapWithSetMachine() {
initComponents();
LeftButton.setLabel("<");
RightButton.setLabel(">");
UpButton.setLabel("/\\");
DownButton.setLabel("\\/");
MapComboBox.removeAllItems();
for (String elem : _mapsDict.keySet()) {
MapComboBox.addItem(elem);
}
_mapCollection = new MapsCollection(PicturePanel.getWidth(), PicturePanel.getHeight());
}
@@ -36,6 +55,12 @@ private Image img;
DownButton = new java.awt.Button();
LeftButton = new java.awt.Button();
UpButton = new java.awt.Button();
MapNameTextField = new java.awt.TextField();
AddMapButton = new java.awt.Button();
DeleteMapButton = new java.awt.Button();
jScrollPane2 = new javax.swing.JScrollPane();
MapList = new javax.swing.JList<>();
DeletedFormOpen = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
@@ -124,6 +149,34 @@ private Image img;
}
});
AddMapButton.setLabel("Добавить карту");
AddMapButton.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
AddMapButtonMouseClicked(evt);
}
});
DeleteMapButton.setLabel("Удалить карту");
DeleteMapButton.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
DeleteMapButtonMouseClicked(evt);
}
});
MapList.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
MapListValueChanged(evt);
}
});
jScrollPane2.setViewportView(MapList);
DeletedFormOpen.setText("Удаленные");
DeletedFormOpen.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
DeletedFormOpenMouseClicked(evt);
}
});
javax.swing.GroupLayout InstrumentPanelLayout = new javax.swing.GroupLayout(InstrumentPanel);
InstrumentPanel.setLayout(InstrumentPanelLayout);
InstrumentPanelLayout.setHorizontalGroup(
@@ -132,38 +185,56 @@ private Image img;
.addComponent(jLabel1)
.addGap(0, 0, Short.MAX_VALUE))
.addGroup(InstrumentPanelLayout.createSequentialGroup()
.addGap(22, 22, 22)
.addGroup(InstrumentPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(MapComboBox, 0, 165, Short.MAX_VALUE)
.addComponent(AddMachineButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(TextBoxPosition, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(DeleteButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(StoreButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(MapButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, InstrumentPanelLayout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap()
.addGroup(InstrumentPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(AddMapButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(InstrumentPanelLayout.createSequentialGroup()
.addGap(25, 25, 25)
.addComponent(UpButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(27, 27, 27))
.addGroup(InstrumentPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(RightButton, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, InstrumentPanelLayout.createSequentialGroup()
.addComponent(LeftButton, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(1, 1, 1)
.addComponent(DownButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(29, 29, 29))))
.addGap(49, 49, 49))
.addGroup(InstrumentPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(MapComboBox, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(MapNameTextField, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jScrollPane2, javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(DeleteMapButton, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(InstrumentPanelLayout.createSequentialGroup()
.addGap(12, 12, 12)
.addGroup(InstrumentPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(InstrumentPanelLayout.createSequentialGroup()
.addComponent(DeletedFormOpen, javax.swing.GroupLayout.PREFERRED_SIZE, 122, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(InstrumentPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(InstrumentPanelLayout.createSequentialGroup()
.addGap(25, 25, 25)
.addComponent(UpButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(27, 27, 27))
.addGroup(InstrumentPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(RightButton, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, InstrumentPanelLayout.createSequentialGroup()
.addComponent(LeftButton, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(1, 1, 1)
.addComponent(DownButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(29, 29, 29))))
.addGap(39, 39, 39))
.addComponent(AddMachineButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(TextBoxPosition, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(DeleteButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(StoreButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(MapButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
.addContainerGap())))
);
InstrumentPanelLayout.setVerticalGroup(
InstrumentPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(InstrumentPanelLayout.createSequentialGroup()
.addComponent(jLabel1)
.addGap(21, 21, 21)
.addComponent(MapNameTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(MapComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(AddMapButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(22, 22, 22)
.addComponent(DeleteMapButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(AddMachineButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(TextBoxPosition, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
@@ -173,9 +244,11 @@ private Image img;
.addComponent(StoreButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(MapButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 28, Short.MAX_VALUE)
.addComponent(UpButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(1, 1, 1)
.addGap(25, 25, 25)
.addGroup(InstrumentPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(UpButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(DeletedFormOpen))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(InstrumentPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, InstrumentPanelLayout.createSequentialGroup()
.addGroup(InstrumentPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
@@ -183,7 +256,7 @@ private Image img;
.addComponent(RightButton, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(21, 21, 21))
.addComponent(DownButton, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap())
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
@@ -191,14 +264,16 @@ private Image img;
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(PicturePanel, javax.swing.GroupLayout.DEFAULT_SIZE, 336, Short.MAX_VALUE)
.addComponent(PicturePanel, javax.swing.GroupLayout.DEFAULT_SIZE, 438, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(InstrumentPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(PicturePanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(InstrumentPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addComponent(PicturePanel, javax.swing.GroupLayout.PREFERRED_SIZE, 597, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE))
);
pack();
@@ -220,39 +295,13 @@ private Image img;
Move("UpButton");
}//GEN-LAST:event_UpButtonMouseClicked
private void MapComboBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_MapComboBoxActionPerformed
AbstractMap map = null;
String name = (String) MapComboBox.getSelectedItem();
switch (name)
{
case "Простая карта":
map = new SimpleMap();
break;
case "Горизонтальная карта":
map = new HorizontalMap();
break;
case "Вертикальная карта":
map = new VerticalMap();
break;
}
if (map != null)
{
_mapCollectionGeneric = new MapWithSetArmoredCarsGeneric<DrawingObject, AbstractMap>(
PicturePanel.getWidth(), PicturePanel.getHeight(), map);
}
else
{
_mapCollectionGeneric = null;
}
}//GEN-LAST:event_MapComboBoxActionPerformed
private void AddMachineButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_AddMachineButtonMouseClicked
if (_mapCollectionGeneric == null)
if (_mapCollection == null)
{
JOptionPane.showMessageDialog(null, "Не выбрана карта");
return;
}
PolimorphForm form = new PolimorphForm();
FormArmoredVehicleConfig form = new FormArmoredVehicleConfig();
form.setVisible(true);
form.addWindowListener(new WindowAdapter() {
@Override
@@ -260,15 +309,17 @@ private Image img;
if (form.getSelectedCar() == null)
return;
DrawingObject machine = new DrawingObject(form.getSelectedCar());
if (_mapCollectionGeneric.add(machine) > -1)
if (_mapCollection.Get(MapList.getSelectedValue().toString()).add(machine) != -1)
{
if (form.DialogResult) {
JOptionPane.showMessageDialog(null, "Объект добавлен");
img = _mapCollectionGeneric.ShowSet();
img = _mapCollection.Get(MapList.getSelectedValue().toString()).ShowSet();
Draw();
}
}
}
else
{
JOptionPane.showMessageDialog(null, "Не удалось добавить объект");
JOptionPane.showMessageDialog(null, MapList.getSelectedValue().toString()+" Не удалось добавить объект");
}
}
});
@@ -284,10 +335,11 @@ private Image img;
"Удаление", JOptionPane.YES_NO_OPTION);
if (res == JOptionPane.YES_OPTION) {
int pos = Integer.parseInt(TextBoxPosition.getText());
if (_mapCollectionGeneric.remove(pos) != null)
deleted.offer(_mapCollection.Get(MapList.getSelectedValue().toString()).GetMachineInList(pos).GetMachine());
if (_mapCollection.Get(MapList.getSelectedValue().toString()).remove(pos) != null)
{
JOptionPane.showMessageDialog(null, "Объект удален");
img = _mapCollectionGeneric.ShowSet();
img = _mapCollection.Get(MapList.getSelectedValue().toString()).ShowSet();
Draw();
}
else
@@ -298,30 +350,138 @@ private Image img;
}//GEN-LAST:event_DeleteButtonMouseClicked
private void StoreButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_StoreButtonMouseClicked
if (_mapCollectionGeneric == null)
if (_mapCollection == null)
{
return;
}
img = _mapCollectionGeneric.ShowSet();
img = _mapCollection.Get(MapList.getSelectedValue().toString()).ShowSet();
Draw();
}//GEN-LAST:event_StoreButtonMouseClicked
private void MapButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_MapButtonMouseClicked
if (_mapCollectionGeneric == null)
if (_mapCollection == null)
{
return;
}
img = _mapCollectionGeneric.ShowOnMap();
img = _mapCollection.Get(MapList.getSelectedValue().toString()).ShowOnMap();
Draw();
}//GEN-LAST:event_MapButtonMouseClicked
private void AddMapButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_AddMapButtonMouseClicked
if (MapComboBox.getSelectedIndex() == -1 || MapNameTextField.getText().isEmpty()) {
JOptionPane.showMessageDialog(null, "Не все данные заполнены", "Ошибка", JOptionPane.ERROR_MESSAGE);
return;
}
if (!_mapsDict.containsKey(MapComboBox.getSelectedItem())) {
JOptionPane.showMessageDialog(null, "Нет такой карты", "Ошибка", JOptionPane.ERROR_MESSAGE);
return;
}
_mapCollection.AddMap(MapNameTextField.getText(), _mapsDict.get(MapComboBox.getSelectedItem().toString()));
ReloadMaps();
}//GEN-LAST:event_AddMapButtonMouseClicked
private void ReloadMaps() {
int index = MapList.getSelectedIndex();
var list =_mapCollection.getKeys();
MapList.setListData(list);
var model = MapList.getModel();
if (MapList.getModel().getSize() > 0 && (index == -1 || index >=
MapList.getModel().getSize()))
{
MapList.setSelectedIndex(0);
}
else if (MapList.getModel().getSize() > 0 && index > -1 && index <
MapList.getModel().getSize())
{
MapList.setSelectedIndex(index);
}
if(_mapCollection.Get((String)MapList.getSelectedValue()) == null)
{
JOptionPane.showMessageDialog(null, "Такой карты нет");
}
else
{
img = _mapCollection.Get((String)MapList.getSelectedValue()).ShowSet();
Draw();
}
}
private void DeleteMapButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_DeleteMapButtonMouseClicked
if (MapList.getSelectedIndex() == -1) {
return;
}
if (JOptionPane.showConfirmDialog(null, "Удалить карту " + MapList.getSelectedValue().toString() + "?",
"Удаление", JOptionPane.YES_NO_OPTION) == 0) {
_mapCollection.DelMap(MapList.getSelectedValue().toString());
ReloadMaps();
}
}//GEN-LAST:event_DeleteMapButtonMouseClicked
private void MapComboBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_MapComboBoxActionPerformed
AbstractMap map = null;
String name = (String) MapComboBox.getSelectedItem();
if(name!=null)
{
switch (name)
{
case "Простая карта":
map = new SimpleMap();
break;
case "Горизонтальная карта":
map = new HorizontalMap();
break;
case "Вертикальная карта":
map = new VerticalMap();
break;
}
}
if (map != null)
{
_mapCollection = new MapsCollection(PicturePanel.getWidth(), PicturePanel.getHeight());
}
else
{
_mapCollection = null;
}
}//GEN-LAST:event_MapComboBoxActionPerformed
private void MapListValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_MapListValueChanged
var object = MapList.getSelectedValue();
if(object == null)
{
return;
}
img = _mapCollection.Get((String)MapList.getSelectedValue()).ShowSet();
Draw();
}//GEN-LAST:event_MapListValueChanged
private void DeletedFormOpenMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_DeletedFormOpenMouseClicked
var elem = deleted.poll();
if(elem != null)
{
MainForm form = new MainForm(elem);
form.setVisible(true);
form.addWindowListener(new WindowAdapter() {
@Override
public void windowDeactivated(WindowEvent e) {
}
});
}
else
{
JOptionPane.showMessageDialog(null, "Очередь пуста");
}
}//GEN-LAST:event_DeletedFormOpenMouseClicked
public void Move(String name)
{
switch (name)
{
case "UpButton" -> img = _mapCollectionGeneric.MoveObject(Direction.Up);
case "DownButton" -> img = _mapCollectionGeneric.MoveObject(Direction.Down);
case "LeftButton" -> img = _mapCollectionGeneric.MoveObject(Direction.Left);
case "RightButton" -> img = _mapCollectionGeneric.MoveObject(Direction.Right);
case "UpButton" -> img = _mapCollection.Get(MapList.getSelectedValue().toString()).MoveObject(Direction.Up);
case "DownButton" -> img = _mapCollection.Get(MapList.getSelectedValue().toString()).MoveObject(Direction.Down);
case "LeftButton" -> img =_mapCollection.Get(MapList.getSelectedValue().toString()).MoveObject(Direction.Left);
case "RightButton" -> img = _mapCollection.Get(MapList.getSelectedValue().toString()).MoveObject(Direction.Right);
}
Draw();
@@ -367,17 +527,23 @@ private Image img;
// Variables declaration - do not modify//GEN-BEGIN:variables
private java.awt.Button AddMachineButton;
private java.awt.Button AddMapButton;
private java.awt.Button DeleteButton;
private java.awt.Button DeleteMapButton;
private javax.swing.JButton DeletedFormOpen;
private java.awt.Button DownButton;
private javax.swing.JPanel InstrumentPanel;
private java.awt.Button LeftButton;
private java.awt.Button MapButton;
private javax.swing.JComboBox<String> MapComboBox;
private javax.swing.JList<String> MapList;
private java.awt.TextField MapNameTextField;
private javax.swing.JPanel PicturePanel;
private java.awt.Button RightButton;
private java.awt.Button StoreButton;
private java.awt.TextField TextBoxPosition;
private java.awt.Button UpButton;
private javax.swing.JLabel jLabel1;
private javax.swing.JScrollPane jScrollPane2;
// End of variables declaration//GEN-END:variables
}

View File

@@ -34,59 +34,86 @@
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<EmptySpace min="0" pref="451" max="32767" attributes="0"/>
<Group type="103" rootIndex="1" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Component id="DrawPanel" pref="445" max="32767" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Component id="DrawPanel" max="32767" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<EmptySpace min="0" pref="309" max="32767" attributes="0"/>
<Group type="103" rootIndex="1" groupAlignment="0" attributes="0">
<Group type="102" alignment="1" attributes="0">
<EmptySpace max="32767" attributes="0"/>
<Component id="DrawPanel" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<Component id="DrawPanel" min="-2" max="-2" attributes="0"/>
<EmptySpace min="0" pref="22" max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Container class="javax.swing.JPanel" name="DrawPanel">
<Events>
<EventHandler event="componentShown" listener="java.awt.event.ComponentListener" parameters="java.awt.event.ComponentEvent" handler="DrawPanelComponentShown"/>
</Events>
<AuxValues>
<AuxValue name="JavaCodeGenerator_CreateCodeCustom" type="java.lang.String" value="new javax.swing.JPanel(){&#xa; Graphics2D g2;}"/>
</AuxValues>
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/>
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<EmptySpace min="367" pref="367" max="-2" attributes="0"/>
<Component id="UpButton" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" attributes="0">
<EmptySpace min="337" pref="337" max="-2" attributes="0"/>
<Component id="LeftButton" min="-2" max="-2" attributes="0"/>
<EmptySpace min="30" pref="30" max="-2" attributes="0"/>
<Component id="RightButton" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="27" pref="27" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<Component id="exitButton" min="-2" pref="78" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="258" max="-2" attributes="0"/>
<Component id="DownButton" min="-2" max="-2" attributes="0"/>
</Group>
<Component id="PropertyText" min="-2" pref="330" max="-2" attributes="0"/>
</Group>
</Group>
</Group>
<EmptySpace pref="86" max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<EmptySpace min="160" pref="160" max="-2" attributes="0"/>
<Component id="UpButton" min="-2" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="LeftButton" min="-2" max="-2" attributes="0"/>
<Component id="RightButton" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="103" groupAlignment="1" attributes="0">
<Component id="exitButton" min="-2" max="-2" attributes="0"/>
<Group type="102" attributes="0">
<Component id="DownButton" min="-2" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="13" max="-2" attributes="0"/>
</Group>
</Group>
<EmptySpace min="10" pref="10" max="-2" attributes="0"/>
<Component id="PropertyText" min="-2" max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Component class="java.awt.TextField" name="PropertyText">
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="0" gridY="4" gridWidth="2" gridHeight="1" fill="0" ipadX="322" ipadY="0" insetsTop="10" insetsLeft="0" insetsBottom="10" insetsRight="0" anchor="18" weightX="0.0" weightY="0.0"/>
</Constraint>
</Constraints>
</Component>
<Component class="java.awt.Button" name="CreateButton">
<Properties>
<Property name="actionCommand" type="java.lang.String" value="Create"/>
<Property name="label" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
<Connection code="&quot;&#x421;&#x43e;&#x437;&#x434;&#x430;&#x442;&#x44c;&quot;" type="code"/>
</Property>
<Property name="name" type="java.lang.String" value="CreateButton" noResource="true"/>
</Properties>
<Events>
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="CreateButtonMouseClicked"/>
</Events>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="0" gridY="2" gridWidth="1" gridHeight="2" fill="0" ipadX="67" ipadY="0" insetsTop="13" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="18" weightX="0.0" weightY="0.0"/>
</Constraint>
</Constraints>
</Component>
<Component class="java.awt.Button" name="UpButton">
<Properties>
@@ -106,11 +133,6 @@
<AuxValue name="JavaCodeGenerator_CreateCodeCustom" type="java.lang.String" value="new java.awt.Button()"/>
<AuxValue name="JavaCodeGenerator_CreateCodePre" type="java.lang.String" value="ImageIcon arrowUp = new ImageIcon(&quot;C:\\Users\\Alena\\Desktop\\New Folder\\JavaApplication4\\src\\Resources\\arrowUp.jpg&quot;);"/>
</AuxValues>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="4" gridY="0" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="160" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="18" weightX="0.0" weightY="0.0"/>
</Constraint>
</Constraints>
</Component>
<Component class="java.awt.Button" name="LeftButton">
<Properties>
@@ -123,11 +145,6 @@
<Events>
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="LeftButtonMouseClicked"/>
</Events>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="1" gridY="1" gridWidth="3" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="227" insetsBottom="0" insetsRight="0" anchor="18" weightX="0.0" weightY="0.0"/>
</Constraint>
</Constraints>
</Component>
<Component class="java.awt.Button" name="DownButton">
<Properties>
@@ -141,11 +158,6 @@
<Events>
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="DownButtonMouseClicked"/>
</Events>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="4" gridY="2" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="18" weightX="0.0" weightY="0.0"/>
</Constraint>
</Constraints>
</Component>
<Component class="java.awt.Button" name="RightButton">
<Properties>
@@ -159,11 +171,15 @@
<Events>
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="RightButtonMouseClicked"/>
</Events>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="5" gridY="1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="32" anchor="18" weightX="0.0" weightY="0.0"/>
</Constraint>
</Constraints>
</Component>
<Component class="java.awt.Button" name="exitButton">
<Properties>
<Property name="label" type="java.lang.String" value="&#x412;&#x44b;&#x445;&#x43e;&#x434;"/>
<Property name="name" type="java.lang.String" value="" noResource="true"/>
</Properties>
<Events>
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="exitButtonMouseClicked"/>
</Events>
</Component>
</SubComponents>
</Container>

View File

@@ -3,31 +3,31 @@ import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.util.Random;
import javax.swing.ImageIcon;
import javax.swing.JColorChooser;
import javax.swing.JPanel;
public class MainForm extends javax.swing.JFrame {
private Image img;
private DrawingArmoredVehicle _ArmoredVehicle;
private DrawingArmoredVehicle SelectedMachine;
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
java.awt.GridBagConstraints gridBagConstraints;
jButton1 = new javax.swing.JButton();
DrawPanel = new javax.swing.JPanel(){
Graphics2D g2;};
PropertyText = new java.awt.TextField();
CreateButton = new java.awt.Button();
ImageIcon arrowUp = new ImageIcon("C:\\Users\\Alena\\Desktop\\New Folder\\JavaApplication4\\src\\Resources\\arrowUp.jpg");
UpButton = new java.awt.Button();
LeftButton = new java.awt.Button();
DownButton = new java.awt.Button();
RightButton = new java.awt.Button();
exitButton = new java.awt.Button();
jButton1.setText("jButton1");
@@ -35,32 +35,11 @@ public class MainForm extends javax.swing.JFrame {
setMinimumSize(new java.awt.Dimension(444, 303));
setName("MainFrame"); // NOI18N
DrawPanel.setLayout(new java.awt.GridBagLayout());
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 4;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.ipadx = 322;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(10, 0, 10, 0);
DrawPanel.add(PropertyText, gridBagConstraints);
CreateButton.setActionCommand("Create");
CreateButton.setLabel("Создать");
CreateButton.setName("CreateButton"); // NOI18N
CreateButton.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
CreateButtonMouseClicked(evt);
DrawPanel.addComponentListener(new java.awt.event.ComponentAdapter() {
public void componentShown(java.awt.event.ComponentEvent evt) {
DrawPanelComponentShown(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.gridheight = 2;
gridBagConstraints.ipadx = 67;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(13, 0, 0, 0);
DrawPanel.add(CreateButton, gridBagConstraints);
UpButton.setActionCommand("Up");
UpButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
@@ -71,12 +50,6 @@ public class MainForm extends javax.swing.JFrame {
UpButtonMouseClicked(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 4;
gridBagConstraints.gridy = 0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(160, 0, 0, 0);
DrawPanel.add(UpButton, gridBagConstraints);
LeftButton.setActionCommand("Left");
LeftButton.setMinimumSize(new java.awt.Dimension(30, 30));
@@ -86,13 +59,6 @@ public class MainForm extends javax.swing.JFrame {
LeftButtonMouseClicked(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 1;
gridBagConstraints.gridwidth = 3;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(0, 227, 0, 0);
DrawPanel.add(LeftButton, gridBagConstraints);
DownButton.setActionCommand("Left");
DownButton.setLabel("");
@@ -103,11 +69,6 @@ public class MainForm extends javax.swing.JFrame {
DownButtonMouseClicked(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 4;
gridBagConstraints.gridy = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
DrawPanel.add(DownButton, gridBagConstraints);
RightButton.setActionCommand("Right");
RightButton.setLabel("");
@@ -118,57 +79,96 @@ public class MainForm extends javax.swing.JFrame {
RightButtonMouseClicked(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 5;
gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 32);
DrawPanel.add(RightButton, gridBagConstraints);
exitButton.setLabel("Выход");
exitButton.setName(""); // NOI18N
exitButton.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
exitButtonMouseClicked(evt);
}
});
javax.swing.GroupLayout DrawPanelLayout = new javax.swing.GroupLayout(DrawPanel);
DrawPanel.setLayout(DrawPanelLayout);
DrawPanelLayout.setHorizontalGroup(
DrawPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(DrawPanelLayout.createSequentialGroup()
.addGroup(DrawPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(DrawPanelLayout.createSequentialGroup()
.addGap(367, 367, 367)
.addComponent(UpButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(DrawPanelLayout.createSequentialGroup()
.addGap(337, 337, 337)
.addComponent(LeftButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(30, 30, 30)
.addComponent(RightButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(DrawPanelLayout.createSequentialGroup()
.addGap(27, 27, 27)
.addGroup(DrawPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(DrawPanelLayout.createSequentialGroup()
.addComponent(exitButton, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(258, 258, 258)
.addComponent(DownButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(PropertyText, javax.swing.GroupLayout.PREFERRED_SIZE, 330, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addContainerGap(86, Short.MAX_VALUE))
);
DrawPanelLayout.setVerticalGroup(
DrawPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(DrawPanelLayout.createSequentialGroup()
.addGap(160, 160, 160)
.addComponent(UpButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(DrawPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(LeftButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(RightButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(DrawPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(exitButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(DrawPanelLayout.createSequentialGroup()
.addComponent(DownButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(13, 13, 13)))
.addGap(10, 10, 10)
.addComponent(PropertyText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 451, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(DrawPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 445, Short.MAX_VALUE)))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(DrawPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 309, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(DrawPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap()))
.addGroup(layout.createSequentialGroup()
.addComponent(DrawPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 22, Short.MAX_VALUE))
);
pack();
}// </editor-fold>//GEN-END:initComponents
public MainForm() {
public MainForm(DrawingArmoredVehicle machine) {
initComponents();
LeftButton.setLabel("<");
RightButton.setLabel(">");
UpButton.setLabel("/\\");
DownButton.setLabel("\\/");
}
private void CreateButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_CreateButtonMouseClicked
DownButton.setLabel("\\/");
_ArmoredVehicle = machine;
Draw();
SetData();
}
public void SetData()
{
Random rnd = new Random();
_ArmoredVehicle = new DrawingArmoredVehicle(rnd.nextInt(100, 300), rnd.nextInt(1000, 2000),
new Color(rnd.nextInt(0, 256), rnd.nextInt(0, 256), rnd.nextInt(0, 256)));
_ArmoredVehicle.SetPosition(rnd.nextInt(0, 100), rnd.nextInt(25, 200),
DrawPanel.getWidth(), DrawPanel.getHeight());
PropertyText.setText("Скорость: " + _ArmoredVehicle.ArmoredVehicle.Speed +
" Вес: "+_ArmoredVehicle.ArmoredVehicle.Weight +
" Цвет: "+_ArmoredVehicle.ArmoredVehicle.BodyColor.getRGB()+
" Катков: "+_ArmoredVehicle.Count);
Draw();
}//GEN-LAST:event_CreateButtonMouseClicked
}
public void Move(String name)
{
switch (name)
@@ -180,9 +180,6 @@ public class MainForm extends javax.swing.JFrame {
}
Draw();
}
public DrawingArmoredVehicle getSelectedCar() {
return SelectedMachine;
}
private void UpButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_UpButtonMouseClicked
Move("UpButton");
@@ -200,12 +197,20 @@ public class MainForm extends javax.swing.JFrame {
Move("DownButton");
}//GEN-LAST:event_DownButtonMouseClicked
private void exitButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_exitButtonMouseClicked
dispose();
}//GEN-LAST:event_exitButtonMouseClicked
private void DrawPanelComponentShown(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_DrawPanelComponentShown
Draw();
}//GEN-LAST:event_DrawPanelComponentShown
private void Draw()
{
Graphics g = DrawPanel.getGraphics();
g.drawImage(img, 0, 0, this);
g.drawImage(Pic(), 0, 0, this);
}
private void createUIComponents() {
DrawPanel = new JPanel() {
@@ -215,15 +220,24 @@ public class MainForm extends javax.swing.JFrame {
}
};
}
Image Pic()
{
BufferedImage img = new BufferedImage(DrawPanel.getWidth(), DrawPanel.getHeight(), BufferedImage.TYPE_INT_BGR);
Graphics2D gr = img.createGraphics();
gr.setBackground(Color.yellow);
_ArmoredVehicle.DrawTransport(gr);
return img;
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private java.awt.Button CreateButton;
private java.awt.Button DownButton;
private javax.swing.JPanel DrawPanel;
private java.awt.Button LeftButton;
private java.awt.TextField PropertyText;
private java.awt.Button RightButton;
private java.awt.Button UpButton;
private java.awt.Button exitButton;
private javax.swing.JButton jButton1;
// End of variables declaration//GEN-END:variables

View File

@@ -16,6 +16,7 @@ public class MapForm extends JFrame{
private DrawingArmoredVehicle _ArmoredVehicle;
private DrawingArmoredVehicle SelectedMachine;
public boolean DialogResult = false;
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
@@ -197,7 +198,6 @@ public class MapForm extends JFrame{
}//GEN-LAST:event_CreateButtonMouseClicked
public void SetData()
{
Random rnd = new Random();
_ArmoredVehicle.SetPosition(rnd.nextInt(0, 100), rnd.nextInt(25, 200),
DrawPanel.getWidth(), DrawPanel.getHeight());
@@ -260,6 +260,7 @@ public class MapForm extends JFrame{
private void SetButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_SetButtonMouseClicked
if (_ArmoredVehicle != null) {
SelectedMachine = _ArmoredVehicle;
DialogResult = true;
dispose();
}
}//GEN-LAST:event_SetButtonMouseClicked

View File

@@ -1,7 +1,7 @@
import java.awt.*;
import java.awt.image.BufferedImage;
public class MapWithSetArmoredCarsGeneric<T extends IDrawingObject, U extends AbstractMap> {
public class MapWithSetMachineGeneric<T extends IDrawingObject, U extends AbstractMap> {
private int _pictureWidth;
@@ -15,7 +15,7 @@ public class MapWithSetArmoredCarsGeneric<T extends IDrawingObject, U extends Ab
private U _map;
public MapWithSetArmoredCarsGeneric(int picWidth, int picHeight, U map)
public MapWithSetMachineGeneric(int picWidth, int picHeight, U map)
{
int width = picWidth / _placeSizeWidth;
int height = picHeight / _placeSizeHeight;
@@ -34,7 +34,10 @@ public class MapWithSetArmoredCarsGeneric<T extends IDrawingObject, U extends Ab
{
return _setCars.Remove(position);
}
public T GetMachineInList(int ind){
return _setCars.Get(ind);
}
public Image ShowSet()
{
Image bmp = new BufferedImage(_pictureWidth, _pictureHeight, BufferedImage.TYPE_INT_BGR);
@@ -47,14 +50,9 @@ public class MapWithSetArmoredCarsGeneric<T extends IDrawingObject, U extends Ab
public Image ShowOnMap()
{
Shaking();
for (int i = 0; i < _setCars.getCount(); i++)
{
var car = _setCars.Get(i);
if (car != null)
{
return _map.CreateMap(_pictureWidth, _pictureHeight, car);
}
}
for (var machine : _setCars) {
return _map.CreateMap(_pictureWidth, _pictureHeight, machine);
}
return new BufferedImage(_pictureWidth, _pictureHeight, BufferedImage.TYPE_INT_BGR);
}
@@ -111,13 +109,13 @@ public class MapWithSetArmoredCarsGeneric<T extends IDrawingObject, U extends Ab
private void DrawArmoredCars(Graphics g)
{
int width = _pictureWidth / _placeSizeWidth;
for (int i = 0; i < _setCars.getCount(); i++)
{
if (_setCars.Get(i) != null) {
int width = _pictureWidth / _placeSizeWidth;
for(int i = 0; i<_setCars.getCount(); i++)
{
if (_setCars.Get(i) != null) {
_setCars.Get(i).SetObject(i % width * _placeSizeWidth + 5, i / width * _placeSizeHeight + 10, _pictureWidth, _pictureHeight);
_setCars.Get(i).DrawingObject((Graphics2D) g);
}
}
}
}
}

View File

@@ -0,0 +1,105 @@
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import javax.swing.JOptionPane;
public class MapsCollection {
/// <summary>
/// Словарь (хранилище) с картами
/// </summary>
Map <String, MapWithSetMachineGeneric<DrawingObject, AbstractMap>> _mapStorages;
/// <summary>
/// Возвращение списка названий карт
/// </summary>
public ArrayList<String> Keys;
/// <summary>
/// Ширина окна отрисовки
/// </summary>
private int _pictureWidth;
/// <summary>
/// Высота окна отрисовки
/// </summary>
private int _pictureHeight;
/// <summary>
/// Конструктор
/// </summary>
/// <param name="pictureWidth"></param>
/// <param name="pictureHeight"></param>
public MapsCollection(int pictureWidth, int pictureHeight)
{
_mapStorages = new HashMap<String, MapWithSetMachineGeneric<DrawingObject, AbstractMap>>();
Keys = new ArrayList<String>(_mapStorages.keySet());
_pictureWidth = pictureWidth;
_pictureHeight = pictureHeight;
}
public String[] getKeys() {
String[] res = new String[_mapStorages.size()];
int i = 0;
for(String elem: _mapStorages.keySet())
{
res[i] = elem;
i++;
}
return res;
}
/// <summary>
/// Добавление карты
/// </summary>
/// <param name="name">Название карты</param>
/// <param name="map">Карта</param>
public void AddMap(String name, AbstractMap map)
{
if (_mapStorages.keySet().contains(name))
{
JOptionPane.showMessageDialog(null, "Такая карта уже есть");
return;
}
else
{
var NewElem = new MapWithSetMachineGeneric<DrawingObject, AbstractMap>(
_pictureWidth, _pictureHeight, map);
_mapStorages.put(name, NewElem);
}
}
/// <summary>
/// Удаление карты
/// </summary>
/// <param name="name">Название карты</param>
public void DelMap(String name)
{
if (_mapStorages.keySet().contains(name))
{
_mapStorages.remove(name);
}
else
{
JOptionPane.showMessageDialog(null, "Такой карты нет");
return;
}
}
/// <summary>
/// Доступ к парковке
/// </summary>
/// <param name="ind"></param>
/// <returns></returns>
public MapWithSetMachineGeneric<DrawingObject, AbstractMap> Get(String ind)
{
if(_mapStorages.keySet().contains(ind))
{
return _mapStorages.get(ind);
}
return null;
}
public DrawingObject Get(String name, int ind) {
if (_mapStorages.containsKey(name))
{
return _mapStorages.get(name).GetMachineInList(ind);
}
return null;
}
}

View File

@@ -1,59 +1,67 @@
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Iterator;
public class SetArmoredCarsGeneric<T> {
private T[] _places;
public class SetArmoredCarsGeneric<T> implements Iterable<T>{
private ArrayList<T> _places;
private int _MaxCount;
public SetArmoredCarsGeneric(int count)
{
_places = (T[]) new Object[count];
_MaxCount = count;
_places = new ArrayList<T>(_MaxCount);
}
public int getCount() {
return _places != null ? _places.length : 0;
return _places.isEmpty() ? 0 : _places.size();
}
public int Insert(T armoredCar)
{
return Insert(armoredCar, 0);
if(_places.size()+1 <= _MaxCount) return Insert(armoredCar, 0);
else return -1;
}
public int Insert(T armoredCar, int position)
{
if (position < 0 || position >= getCount())
if ((position < 0 || position > getCount()))
return -1;
if (!(_places[position] == null))
{
int index_empty = -1;
// поиск первого пустого элемента
for (int i = position + 1; i < getCount(); i++)
{
if (_places[i] == null)
{
index_empty = i;
}
}
if (index_empty == -1)
return -1;
else
{
for (int i = index_empty; i > position; i--)
{
_places[i] = _places[i - 1];
}
}
}
_places[position] = armoredCar;
// 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);
return position;
}
public T Remove(int position)
{
if (position < 0 || position >= getCount())
if (position < 0 || position >= getCount() || _places.get(position) == null)
return null;
T armoredCar = _places[position];
_places[position] = null;
T armoredCar = _places.get(position);
_places.set(position, null);
return armoredCar;
}
@@ -61,6 +69,16 @@ public class SetArmoredCarsGeneric<T> {
{
if (position < 0 || position >= getCount())
return null;
return _places[position];
return _places.get(position);
}
public void Set(int position, T value){
if (position < 0 || position + 1 >= getCount())
return;
Insert(value, position);
}
@Override
public Iterator<T> iterator() {
return _places.iterator();
}
}