Compare commits
No commits in common. "main" and "LabWork_1" have entirely different histories.
29
ProjectMonorail/.gitignore
vendored
Normal file
29
ProjectMonorail/.gitignore
vendored
Normal file
@ -0,0 +1,29 @@
|
||||
### IntelliJ IDEA ###
|
||||
out/
|
||||
!**/src/main/**/out/
|
||||
!**/src/test/**/out/
|
||||
|
||||
### Eclipse ###
|
||||
.apt_generated
|
||||
.classpath
|
||||
.factorypath
|
||||
.project
|
||||
.settings
|
||||
.springBeans
|
||||
.sts4-cache
|
||||
bin/
|
||||
!**/src/main/**/bin/
|
||||
!**/src/test/**/bin/
|
||||
|
||||
### NetBeans ###
|
||||
/nbproject/private/
|
||||
/nbbuild/
|
||||
/dist/
|
||||
/nbdist/
|
||||
/.nb-gradle/
|
||||
|
||||
### VS Code ###
|
||||
.vscode/
|
||||
|
||||
### Mac OS ###
|
||||
.DS_Store
|
8
ProjectMonorail/.idea/.gitignore
vendored
Normal file
8
ProjectMonorail/.idea/.gitignore
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
||||
# Datasource local storage ignored files
|
||||
/dataSources/
|
||||
/dataSources.local.xml
|
6
ProjectMonorail/.idea/misc.xml
Normal file
6
ProjectMonorail/.idea/misc.xml
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="openjdk-21" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
</project>
|
8
ProjectMonorail/.idea/modules.xml
Normal file
8
ProjectMonorail/.idea/modules.xml
Normal file
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/ProjectMonorail.iml" filepath="$PROJECT_DIR$/ProjectMonorail.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
124
ProjectMonorail/.idea/uiDesigner.xml
Normal file
124
ProjectMonorail/.idea/uiDesigner.xml
Normal file
@ -0,0 +1,124 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Palette2">
|
||||
<group name="Swing">
|
||||
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
|
||||
</item>
|
||||
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
|
||||
</item>
|
||||
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
|
||||
</item>
|
||||
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
|
||||
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
|
||||
</item>
|
||||
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
|
||||
<initial-values>
|
||||
<property name="text" value="Button" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
|
||||
<initial-values>
|
||||
<property name="text" value="RadioButton" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
|
||||
<initial-values>
|
||||
<property name="text" value="CheckBox" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
|
||||
<initial-values>
|
||||
<property name="text" value="Label" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
||||
<preferred-size width="150" height="-1" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
||||
<preferred-size width="150" height="-1" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
||||
<preferred-size width="150" height="-1" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
|
||||
<preferred-size width="200" height="200" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
|
||||
<preferred-size width="200" height="200" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
|
||||
</item>
|
||||
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
|
||||
<preferred-size width="-1" height="20" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
|
||||
</item>
|
||||
</group>
|
||||
</component>
|
||||
</project>
|
6
ProjectMonorail/.idea/vcs.xml
Normal file
6
ProjectMonorail/.idea/vcs.xml
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
|
||||
</component>
|
||||
</project>
|
@ -1,77 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="AutoImportSettings">
|
||||
<option name="autoReloadType" value="SELECTIVE" />
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="39e7c520-e505-4e53-a269-c949d7c9f5d1" name="Changes" comment="">
|
||||
<change afterPath="$PROJECT_DIR$/src/Scripts/Wheels/DrawOrnament.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/Scripts/Wheels/DrawOrnamentOval.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/Scripts/Wheels/DrawOrnamentTriangle.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/Scripts/Wheels/IOrnament.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Scripts/CountWheels.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Scripts/Wheels/CountWheels.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Scripts/DrawingModernMonorail.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Scripts/DrawingModernMonorail.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Scripts/DrawingMonorail.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Scripts/DrawingMonorail.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Scripts/DrawingWheels.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Scripts/Wheels/DrawingWheels.java" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||
</component>
|
||||
<component name="FileTemplateManagerImpl">
|
||||
<option name="RECENT_TEMPLATES">
|
||||
<list>
|
||||
<option value="Class" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="Git.Settings">
|
||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/.." />
|
||||
</component>
|
||||
<component name="ProjectColorInfo">{
|
||||
"customColor": "",
|
||||
"associatedIndex": 6
|
||||
}</component>
|
||||
<component name="ProjectId" id="2eoYwJEsRANWvz6w6GN58HZ6e7Y" />
|
||||
<component name="ProjectViewState">
|
||||
<option name="hideEmptyMiddlePackages" value="true" />
|
||||
<option name="showLibraryContents" value="true" />
|
||||
</component>
|
||||
<component name="PropertiesComponent"><![CDATA[{
|
||||
"keyToString": {
|
||||
"Application.Program.executor": "Run",
|
||||
"RunOnceActivity.OpenProjectViewOnStart": "true",
|
||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||
"git-widget-placeholder": "LabWork__2",
|
||||
"kotlin-language-version-configured": "true"
|
||||
}
|
||||
}]]></component>
|
||||
<component name="RunManager">
|
||||
<configuration name="Program" type="Application" factoryName="Application">
|
||||
<option name="MAIN_CLASS_NAME" value="Scripts.Program" />
|
||||
<module name="ProjectMonorail" />
|
||||
<method v="2">
|
||||
<option name="Make" enabled="true" />
|
||||
</method>
|
||||
</configuration>
|
||||
</component>
|
||||
<component name="SharedIndexes">
|
||||
<attachedChunks>
|
||||
<set>
|
||||
<option value="jdk-21.0.2-openjdk-21.0.2-4caba194b151-4f524021" />
|
||||
</set>
|
||||
</attachedChunks>
|
||||
</component>
|
||||
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
|
||||
<component name="TaskManager">
|
||||
<task active="true" id="Default" summary="Default task">
|
||||
<changelist id="39e7c520-e505-4e53-a269-c949d7c9f5d1" name="Changes" comment="" />
|
||||
<created>1712572637448</created>
|
||||
<option name="number" value="Default" />
|
||||
<option name="presentableId" value="Default" />
|
||||
<updated>1712572637448</updated>
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
</project>
|
11
ProjectMonorail/ProjectMonorail.iml
Normal file
11
ProjectMonorail/ProjectMonorail.iml
Normal file
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
BIN
ProjectMonorail/Resource/Arrows/ArrowDown.png
Normal file
BIN
ProjectMonorail/Resource/Arrows/ArrowDown.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.0 KiB |
BIN
ProjectMonorail/Resource/Arrows/ArrowLeft.png
Normal file
BIN
ProjectMonorail/Resource/Arrows/ArrowLeft.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.9 KiB |
BIN
ProjectMonorail/Resource/Arrows/ArrowRight.png
Normal file
BIN
ProjectMonorail/Resource/Arrows/ArrowRight.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.9 KiB |
BIN
ProjectMonorail/Resource/Arrows/ArrowUp.png
Normal file
BIN
ProjectMonorail/Resource/Arrows/ArrowUp.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.9 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
12
ProjectMonorail/src/CountWheels.java
Normal file
12
ProjectMonorail/src/CountWheels.java
Normal file
@ -0,0 +1,12 @@
|
||||
public enum CountWheels {
|
||||
Two(2),
|
||||
Three(3),
|
||||
Four(4);
|
||||
private final int Value;
|
||||
CountWheels(int Count){
|
||||
Value=Count;
|
||||
}
|
||||
public int getCountWheels(){
|
||||
return Value;
|
||||
}
|
||||
}
|
6
ProjectMonorail/src/DirectionType.java
Normal file
6
ProjectMonorail/src/DirectionType.java
Normal file
@ -0,0 +1,6 @@
|
||||
public enum DirectionType {
|
||||
Up,
|
||||
Down,
|
||||
Left,
|
||||
Right;
|
||||
}
|
58
ProjectMonorail/src/DrawingField.java
Normal file
58
ProjectMonorail/src/DrawingField.java
Normal file
@ -0,0 +1,58 @@
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.util.Random;
|
||||
|
||||
public class DrawingField extends JPanel {
|
||||
private final FormModernMonorail field;
|
||||
DrawingModernMonorail _monorail;
|
||||
public DrawingField(FormModernMonorail field) {
|
||||
this.field = field;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void paintComponent(Graphics g) {
|
||||
super.paintComponent(g);
|
||||
Graphics2D g2 =(Graphics2D)g;
|
||||
if (_monorail !=null)
|
||||
_monorail.DrawTransport(g2);
|
||||
else return;
|
||||
}
|
||||
|
||||
public void UpButtonAction(){
|
||||
if (_monorail !=null)
|
||||
_monorail.MoveTransport(DirectionType.Up);
|
||||
return;
|
||||
}
|
||||
|
||||
public void DownButtonAction(){
|
||||
if (_monorail !=null)
|
||||
_monorail.MoveTransport(DirectionType.Down);
|
||||
return;
|
||||
}
|
||||
|
||||
public void RightButtonAction(){
|
||||
if (_monorail !=null)
|
||||
_monorail.MoveTransport(DirectionType.Right);
|
||||
return;
|
||||
}
|
||||
|
||||
public void LeftButtonAction(){
|
||||
if (_monorail !=null)
|
||||
_monorail.MoveTransport(DirectionType.Left);
|
||||
return;
|
||||
}
|
||||
|
||||
public void CreateButtonAction(){
|
||||
Random rnd=new Random();
|
||||
_monorail =new DrawingModernMonorail();
|
||||
_monorail.SetPictureSize(getWidth(),getHeight());
|
||||
_monorail.Initialization(rnd.nextInt(50)+10,rnd.nextInt(100)+500,new Color(rnd.nextInt(256),rnd.nextInt(256),rnd.nextInt(256)), new Color(rnd.nextInt(256),rnd.nextInt(256),rnd.nextInt(256)), rnd.nextBoolean(), rnd.nextBoolean());
|
||||
_monorail.SetPosition(rnd.nextInt(100)+10,rnd.nextInt(100)+10,getWidth(),getHeight());
|
||||
}
|
||||
|
||||
public void ResizeField(){
|
||||
if (_monorail !=null)
|
||||
_monorail.SetPictureSize(getWidth(),getHeight());
|
||||
else return;
|
||||
}
|
||||
}
|
239
ProjectMonorail/src/DrawingModernMonorail.java
Normal file
239
ProjectMonorail/src/DrawingModernMonorail.java
Normal file
@ -0,0 +1,239 @@
|
||||
import java.awt.*;
|
||||
import java.util.Random;
|
||||
|
||||
public class DrawingModernMonorail {
|
||||
private EntityModernMonorail _entityMonorail;
|
||||
private DrawingWheels _wheels;
|
||||
|
||||
private Integer _pictureWidth = null;
|
||||
private Integer _pictureHeight = null;
|
||||
|
||||
private int _startPositionX;
|
||||
private int _startPositionY;
|
||||
|
||||
private int _drawningMonorailWidth = 100;
|
||||
private final int _drawningMonorailHeight = 40;
|
||||
|
||||
public EntityModernMonorail getMonorail() {return _entityMonorail;}
|
||||
public DrawingWheels getWheels() {return _wheels;}
|
||||
private int _wheelsSeed;
|
||||
|
||||
public void Initialization(int speed, float weight, Color bodyColor, Color additionalColor, boolean monorailTrack, boolean cabin)
|
||||
{
|
||||
_entityMonorail = new EntityModernMonorail();
|
||||
_entityMonorail.Initialization(speed, weight, bodyColor, additionalColor, monorailTrack, cabin);
|
||||
_wheels = new DrawingWheels();
|
||||
Random rnd = new Random();
|
||||
if (_entityMonorail.getCabin()) _drawningMonorailWidth = 190;
|
||||
_wheels.SetCountWheels(2 + rnd.nextInt(0, 3));
|
||||
_wheelsSeed = rnd.nextInt(0, 2);
|
||||
}
|
||||
|
||||
public boolean SetPictureSize(int width, int height)
|
||||
{
|
||||
if (_drawningMonorailWidth > width || _drawningMonorailHeight > height) return false;
|
||||
|
||||
if (_startPositionX >= 0 && _startPositionY >= 0)
|
||||
{
|
||||
if (_startPositionX + _drawningMonorailWidth > width)
|
||||
{
|
||||
_startPositionX = width - _drawningMonorailWidth;
|
||||
}
|
||||
if (_startPositionY + _drawningMonorailHeight > height)
|
||||
{
|
||||
_startPositionY = height - _drawningMonorailHeight;
|
||||
}
|
||||
}
|
||||
|
||||
_pictureWidth = width;
|
||||
_pictureHeight = height;
|
||||
return true;
|
||||
}
|
||||
|
||||
public void SetPosition(int x, int y, int width, int height)
|
||||
{
|
||||
if (_pictureHeight == null || _pictureWidth == null) return;
|
||||
|
||||
if (x + _drawningMonorailWidth > _pictureWidth || x < 0)
|
||||
{
|
||||
_startPositionX = (int)Math.random() * (_pictureWidth - _drawningMonorailWidth);
|
||||
}
|
||||
else
|
||||
{
|
||||
_startPositionX = x;
|
||||
}
|
||||
|
||||
if (y + _drawningMonorailHeight > _pictureHeight || y < 0)
|
||||
{
|
||||
_startPositionY = (int)Math.random() * (_pictureHeight - _drawningMonorailHeight);
|
||||
}
|
||||
else
|
||||
{
|
||||
_startPositionY = y;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean MoveTransport(DirectionType direction)
|
||||
{
|
||||
if (_pictureWidth == null || _pictureHeight == null) return false;
|
||||
|
||||
switch (direction)
|
||||
{
|
||||
case Right:
|
||||
if (_startPositionX + _drawningMonorailWidth + _entityMonorail.Step < _pictureWidth)
|
||||
{
|
||||
_startPositionX += _entityMonorail.Step;
|
||||
}
|
||||
return true;
|
||||
case Left:
|
||||
if (_startPositionX - _entityMonorail.Step >= 0)
|
||||
{
|
||||
_startPositionX -= _entityMonorail.Step;
|
||||
}
|
||||
return true;
|
||||
case Up:
|
||||
if (_startPositionY - _entityMonorail.Step >= 0)
|
||||
{
|
||||
_startPositionY -= _entityMonorail.Step;
|
||||
}
|
||||
return true;
|
||||
case Down:
|
||||
if (_startPositionY + _drawningMonorailHeight + _entityMonorail.Step < _pictureHeight)
|
||||
{
|
||||
_startPositionY += _entityMonorail.Step;
|
||||
}
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public void DrawTransport(Graphics g)
|
||||
{
|
||||
if (_startPositionX < 0 || _startPositionY < 0 || _pictureHeight== null || _pictureWidth== null) return;
|
||||
|
||||
Graphics2D g2 = (Graphics2D) g;
|
||||
g.setColor(_entityMonorail.getBodyColor());
|
||||
|
||||
//Кузов монорельса
|
||||
g.drawLine(_startPositionX + 8, _startPositionY + 10, _startPositionX + 13, _startPositionY);
|
||||
g.drawLine(_startPositionX + 13, _startPositionY, _startPositionX + 80, _startPositionY);
|
||||
g.drawLine(_startPositionX + 80, _startPositionY, _startPositionX + 80, _startPositionY + 25);
|
||||
g.drawLine(_startPositionX + 80, _startPositionY + 25, _startPositionX + 8, _startPositionY + 25);
|
||||
g.drawLine(_startPositionX + 8, _startPositionY + 25, _startPositionX + 8, _startPositionY + 10);
|
||||
g.drawLine(_startPositionX + 8, _startPositionY + 10, _startPositionX + 30, _startPositionY + 10);
|
||||
g.drawLine(_startPositionX + 39, _startPositionY + 10, _startPositionX + 80, _startPositionY + 10);
|
||||
|
||||
//Дверь
|
||||
g.drawRect(_startPositionX + 30, _startPositionY + 5, 9, 15);
|
||||
|
||||
//Окна
|
||||
g.setColor(_entityMonorail.getAdditionalColor());
|
||||
g.drawRect(_startPositionX + 14, _startPositionY + 2, 5, 6);
|
||||
g.drawRect(_startPositionX + 21, _startPositionY + 2, 5, 6);
|
||||
g.drawRect(_startPositionX + 70, _startPositionY + 2, 5, 6);
|
||||
|
||||
//Связка монорельса
|
||||
g.setColor(_entityMonorail.getBodyColor());
|
||||
g.fillRect(_startPositionX + 80, _startPositionY + 2, 7, 22);
|
||||
|
||||
//Нижняя часть монорельса
|
||||
int xPoly_LeftSide[] = {_startPositionX, _startPositionX + 8, _startPositionX + 72, _startPositionX + 36, _startPositionX + 36, _startPositionX + 15, _startPositionX + 15, _startPositionX};
|
||||
int yPoly_LeftSide[] = {_startPositionY + 30, _startPositionY + 25, _startPositionY + 25, _startPositionY + 25, _startPositionY + 32, _startPositionY + 32, _startPositionY + 35, _startPositionY + 32};
|
||||
g.fillPolygon(xPoly_LeftSide, yPoly_LeftSide, xPoly_LeftSide.length);
|
||||
|
||||
int xPoly_RightSide[] = {_startPositionX + 86, _startPositionX + 80, _startPositionX + 50, _startPositionX + 50, _startPositionX + 69, _startPositionX + 79, _startPositionX + 86};
|
||||
int yPoly_RightSide[] = {_startPositionY + 30, _startPositionY + 25, _startPositionY + 25, _startPositionY + 32, _startPositionY + 32, _startPositionY + 35, _startPositionY + 32};
|
||||
g.fillPolygon(xPoly_RightSide, yPoly_RightSide, xPoly_RightSide.length);
|
||||
|
||||
g.fillRect(_startPositionX + 8, _startPositionY + 25, 70, 3);
|
||||
|
||||
if (_entityMonorail.getMonorailTrack()) {
|
||||
if (_entityMonorail.getCabin()) {
|
||||
g.fillRect(_startPositionX, _startPositionY + 35, 170, 5);
|
||||
}
|
||||
else {
|
||||
g.fillRect(_startPositionX, _startPositionY + 35, 86, 5);
|
||||
}
|
||||
}
|
||||
|
||||
//Колеса
|
||||
int[] coordinatesX = new int[_wheels.getCountWheels()];
|
||||
coordinatesX[0] = _startPositionX + 10;
|
||||
coordinatesX[1] = _startPositionX + 65;
|
||||
|
||||
if (coordinatesX.length == 4) {
|
||||
coordinatesX[2] = _startPositionX + 25;
|
||||
coordinatesX[3] = _startPositionX + 50;
|
||||
}
|
||||
else if (coordinatesX.length == 3) {
|
||||
Random rnd = new Random();
|
||||
if (_wheelsSeed == 1) {
|
||||
coordinatesX[2] = _startPositionX + 25;
|
||||
}
|
||||
else {
|
||||
coordinatesX[2] = _startPositionX + 50;
|
||||
}
|
||||
}
|
||||
|
||||
_wheels.DrawWheels(g2, coordinatesX, _startPositionY + 30, _entityMonorail.getAdditionalColor());
|
||||
|
||||
if (_entityMonorail.getCabin()) {
|
||||
int offset = 170;
|
||||
|
||||
//Кузов монорельса
|
||||
g.drawLine(_startPositionX - 8 + offset, _startPositionY + 10, _startPositionX - 13 + offset, _startPositionY);
|
||||
g.drawLine(_startPositionX - 13 + offset, _startPositionY, _startPositionX - 80 + offset, _startPositionY);
|
||||
g.drawLine(_startPositionX - 80 + offset, _startPositionY, _startPositionX - 80 + offset, _startPositionY + 25);
|
||||
g.drawLine(_startPositionX - 80 + offset, _startPositionY + 25, _startPositionX - 8 + offset, _startPositionY + 25);
|
||||
g.drawLine(_startPositionX - 8 + offset, _startPositionY + 25, _startPositionX - 8 + offset, _startPositionY + 10);
|
||||
g.drawLine(_startPositionX - 8 + offset, _startPositionY + 10, _startPositionX - 30 + offset, _startPositionY + 10);
|
||||
g.drawLine(_startPositionX - 39 + offset, _startPositionY + 10, _startPositionX - 80 + offset, _startPositionY + 10);
|
||||
|
||||
//Дверь
|
||||
g.drawRect(_startPositionX - 39 + offset, _startPositionY + 5, 9, 15);
|
||||
|
||||
//Окна
|
||||
g.setColor(_entityMonorail.getAdditionalColor());
|
||||
g.drawRect(_startPositionX - 20 + offset, _startPositionY + 2, 5, 6);
|
||||
g.drawRect(_startPositionX - 27 + offset, _startPositionY + 2, 5, 6);
|
||||
g.drawRect(_startPositionX - 76 + offset, _startPositionY + 2, 5, 6);
|
||||
|
||||
//Связка монорельса
|
||||
g.setColor(_entityMonorail.getBodyColor());
|
||||
g.fillRect(_startPositionX - 87 + offset, _startPositionY + 2, 7, 22);
|
||||
|
||||
//Нижняя часть монорельса
|
||||
xPoly_LeftSide = new int[]{_startPositionX + offset, _startPositionX - 8 + offset, _startPositionX - 72 + offset, _startPositionX - 36 + offset, _startPositionX - 36 + offset, _startPositionX - 15 + offset, _startPositionX - 15 + offset, _startPositionX + offset};
|
||||
yPoly_LeftSide = new int[] {_startPositionY + 30, _startPositionY + 25, _startPositionY + 25, _startPositionY + 25, _startPositionY + 32, _startPositionY + 32, _startPositionY + 35, _startPositionY + 32};
|
||||
g.fillPolygon(xPoly_LeftSide, yPoly_LeftSide, xPoly_LeftSide.length);
|
||||
|
||||
xPoly_RightSide = new int[]{_startPositionX - 86 + offset, _startPositionX - 80 + offset, _startPositionX - 50 + offset, _startPositionX - 50 + offset, _startPositionX - 69 + offset, _startPositionX - 79 + offset, _startPositionX - 86 + offset};
|
||||
yPoly_RightSide = new int[] {_startPositionY + 30, _startPositionY + 25, _startPositionY+ 25, _startPositionY + 32, _startPositionY + 32 , _startPositionY + 35, _startPositionY + 32};
|
||||
g.fillPolygon(xPoly_RightSide, yPoly_RightSide, xPoly_RightSide.length);
|
||||
g.fillRect(_startPositionX - 80 + offset, _startPositionY + 25, 70, 3);
|
||||
|
||||
//Колеса
|
||||
coordinatesX = new int[_wheels.getCountWheels()];
|
||||
coordinatesX[0] = _startPositionX - 20 + offset;
|
||||
coordinatesX[1] = _startPositionX - 75 + offset;
|
||||
|
||||
if (coordinatesX.length == 4) {
|
||||
coordinatesX[2] = _startPositionX - 35 + offset;
|
||||
coordinatesX[3] = _startPositionX - 60 + offset;
|
||||
}
|
||||
else if (coordinatesX.length == 3) {
|
||||
Random rnd = new Random();
|
||||
if (_wheelsSeed == 1) {
|
||||
coordinatesX[2] = _startPositionX - 35 + offset;
|
||||
}
|
||||
else {
|
||||
coordinatesX[2] = _startPositionX - 60 + offset;
|
||||
}
|
||||
}
|
||||
|
||||
_wheels.DrawWheels(g2, coordinatesX , _startPositionY + 30, _entityMonorail.getAdditionalColor());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
26
ProjectMonorail/src/DrawingWheels.java
Normal file
26
ProjectMonorail/src/DrawingWheels.java
Normal file
@ -0,0 +1,26 @@
|
||||
import java.awt.*;
|
||||
|
||||
public class DrawingWheels {
|
||||
|
||||
private CountWheels _wheels;
|
||||
|
||||
public void SetCountWheels(int Count){
|
||||
for (CountWheels temp: CountWheels.values())
|
||||
if (temp.getCountWheels() == Count){
|
||||
_wheels=temp;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
public int getCountWheels() {
|
||||
return _wheels.getCountWheels();
|
||||
}
|
||||
|
||||
public void DrawWheels(Graphics2D g,int startPosX[], int startPosY, Color color) {
|
||||
g.setColor(color);
|
||||
for (int i = 0; i < startPosX.length; i++) {
|
||||
g.drawOval(startPosX[i], startPosY, 10, 10);
|
||||
g.fillOval(startPosX[i], startPosY, 10, 10);
|
||||
}
|
||||
}
|
||||
}
|
38
ProjectMonorail/src/EntityModernMonorail.java
Normal file
38
ProjectMonorail/src/EntityModernMonorail.java
Normal file
@ -0,0 +1,38 @@
|
||||
import java.awt.*;
|
||||
import java.util.Random;
|
||||
|
||||
public class EntityModernMonorail {
|
||||
public float Step;
|
||||
private int _speed;
|
||||
private float _weight;
|
||||
private Color _bodyColor;
|
||||
private Color _additionalColor;
|
||||
private boolean _monorailTrack;
|
||||
private boolean _cabin;
|
||||
|
||||
public int getSpeed() {
|
||||
return _speed;
|
||||
}
|
||||
public float getWeight() {
|
||||
return _weight;
|
||||
}
|
||||
public Color getBodyColor() {
|
||||
return _bodyColor;
|
||||
}
|
||||
public Color getAdditionalColor() {return _additionalColor;}
|
||||
public boolean getMonorailTrack() {return _monorailTrack;}
|
||||
public boolean getCabin() {return _cabin;}
|
||||
|
||||
public void Initialization(int speed, float weight, Color bodyColor, Color additionalColor, boolean monorailTrack, boolean cabin){
|
||||
Random rnd = new Random();
|
||||
_speed = speed <= 0 ? rnd.nextInt(50)+10 : speed;
|
||||
_weight = weight <= 0 ? rnd.nextInt(100)+500 : weight;
|
||||
_bodyColor = bodyColor;
|
||||
_additionalColor = additionalColor;
|
||||
_monorailTrack = monorailTrack;
|
||||
_cabin = cabin;
|
||||
|
||||
Step = _speed * 100/ (int)_weight;
|
||||
}
|
||||
}
|
||||
|
127
ProjectMonorail/src/FormModernMonorail.java
Normal file
127
ProjectMonorail/src/FormModernMonorail.java
Normal file
@ -0,0 +1,127 @@
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ComponentAdapter;
|
||||
import java.awt.event.ComponentEvent;
|
||||
public class FormModernMonorail extends JFrame{
|
||||
private int Width;
|
||||
private int Height;
|
||||
|
||||
private JPanel BottomPanel = new JPanel();
|
||||
private JPanel CreatePanel = new JPanel();
|
||||
private JPanel BottomAndCreatePanel = new JPanel();
|
||||
private JPanel DimentionPanel = new JPanel();
|
||||
private JPanel UPanel = new JPanel();
|
||||
private JPanel DPanel = new JPanel();
|
||||
private JPanel LRPanel = new JPanel();
|
||||
|
||||
private DrawingField field = new DrawingField(this);
|
||||
|
||||
private JButton ButtonCreate=new JButton("Create Monorail");
|
||||
|
||||
private Icon _iconUp = new ImageIcon("Resource\\Arrows\\ArrowUp.png");
|
||||
private Icon _iconDown = new ImageIcon("Resource\\Arrows\\ArrowDown.png");
|
||||
private Icon _iconRight = new ImageIcon("Resource\\Arrows\\ArrowRight.png");
|
||||
private Icon _iconLeft = new ImageIcon("Resource\\Arrows\\ArrowLeft.png");
|
||||
|
||||
private JButton ButtonUp=new JButton(_iconUp);
|
||||
private JButton ButtonDown=new JButton(_iconDown);
|
||||
private JButton ButtonRight=new JButton(_iconRight);
|
||||
private JButton ButtonLeft=new JButton(_iconLeft);
|
||||
|
||||
public FormModernMonorail(){
|
||||
super("Modern Monorail");
|
||||
setSize(600,480);
|
||||
Width=getWidth();
|
||||
Height=getHeight();
|
||||
ShowWindow();
|
||||
RefreshWindow();
|
||||
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
setVisible(true);
|
||||
}
|
||||
|
||||
public void ShowWindow(){
|
||||
|
||||
Dimension dimen=new Dimension(30,30);
|
||||
|
||||
ButtonUp.setPreferredSize(dimen);
|
||||
ButtonUp.addActionListener(e->{
|
||||
field.UpButtonAction();
|
||||
repaint();
|
||||
});
|
||||
|
||||
ButtonDown.setPreferredSize(dimen);
|
||||
ButtonDown.addActionListener(e->{
|
||||
field.DownButtonAction();
|
||||
repaint();
|
||||
});
|
||||
|
||||
ButtonRight.setPreferredSize(dimen);
|
||||
ButtonRight.addActionListener(e->{
|
||||
field.RightButtonAction();
|
||||
repaint();
|
||||
});
|
||||
|
||||
ButtonLeft.setPreferredSize(dimen);
|
||||
ButtonLeft.addActionListener(e->{
|
||||
field.LeftButtonAction();
|
||||
repaint();
|
||||
});
|
||||
|
||||
LRPanel.setLayout(new FlowLayout(FlowLayout.CENTER,50,0));
|
||||
LRPanel.setBackground(new Color(0,0,0,0));
|
||||
LRPanel.add(ButtonLeft);
|
||||
LRPanel.add(ButtonRight);
|
||||
|
||||
UPanel.setLayout(new FlowLayout());
|
||||
UPanel.setBackground(new Color(0,0,0,0));
|
||||
UPanel.add(ButtonUp);
|
||||
|
||||
DPanel.setLayout(new FlowLayout());
|
||||
DPanel.setBackground(new Color(0,0,0,0));
|
||||
DPanel.add(ButtonDown);
|
||||
|
||||
DimentionPanel.setLayout(new BoxLayout(DimentionPanel,BoxLayout.Y_AXIS));
|
||||
DimentionPanel.setBackground(new Color(0,0,0,0));
|
||||
DimentionPanel.add(UPanel);
|
||||
DimentionPanel.add(LRPanel);
|
||||
DimentionPanel.add(DPanel);
|
||||
add(DimentionPanel);
|
||||
|
||||
CreatePanel.setLayout(new FlowLayout());
|
||||
CreatePanel.setBackground(new Color(0,0,0,0));
|
||||
CreatePanel.add(ButtonCreate);
|
||||
ButtonCreate.addActionListener(e->{
|
||||
field.CreateButtonAction();
|
||||
repaint();
|
||||
});
|
||||
|
||||
BottomPanel.setLayout(new FlowLayout());
|
||||
BottomPanel.setBackground(new Color(0,0,0,0));
|
||||
|
||||
BottomAndCreatePanel.setLayout(new BoxLayout(BottomAndCreatePanel,BoxLayout.Y_AXIS));
|
||||
BottomAndCreatePanel.setBackground(new Color(0,0,0,0));
|
||||
BottomAndCreatePanel.add(CreatePanel);
|
||||
BottomAndCreatePanel.add(BottomPanel);
|
||||
|
||||
add(BottomAndCreatePanel);
|
||||
add(field);
|
||||
|
||||
addComponentListener(new ComponentAdapter() {
|
||||
@Override
|
||||
public void componentResized(ComponentEvent e) {
|
||||
super.componentResized(e);
|
||||
Width=getWidth();
|
||||
Height=getHeight();
|
||||
|
||||
field.ResizeField();
|
||||
repaint();
|
||||
RefreshWindow();
|
||||
}
|
||||
});
|
||||
}
|
||||
public void RefreshWindow(){
|
||||
field.setBounds(0,0,Width,Height);
|
||||
BottomAndCreatePanel.setBounds(-220,Height-110,Width,80);
|
||||
DimentionPanel.setBounds(Width-170,Height-170,190,140);
|
||||
}
|
||||
}
|
5
ProjectMonorail/src/Program.java
Normal file
5
ProjectMonorail/src/Program.java
Normal file
@ -0,0 +1,5 @@
|
||||
public class Program {
|
||||
public static void main(String[] args){
|
||||
new FormModernMonorail();
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user