218 lines
8.8 KiB
Java
218 lines
8.8 KiB
Java
|
import javax.imageio.ImageIO;
|
|||
|
import javax.swing.*;
|
|||
|
import java.awt.*;
|
|||
|
import java.awt.event.ActionEvent;
|
|||
|
import java.awt.event.ActionListener;
|
|||
|
import java.awt.event.ComponentAdapter;
|
|||
|
import java.awt.event.ComponentEvent;
|
|||
|
import java.awt.image.BufferedImage;
|
|||
|
import java.util.Random;
|
|||
|
import java.util.Set;
|
|||
|
|
|||
|
public class FormMap extends JFrame
|
|||
|
{
|
|||
|
public JPanel MainPanel;
|
|||
|
private JButton ButtonCreate;
|
|||
|
private JButton ButtonCreateModif;
|
|||
|
private JButton ButtonLeft;
|
|||
|
private JButton ButtonDown;
|
|||
|
private JButton ButtonRight;
|
|||
|
private JButton ButtonUp;
|
|||
|
private JToolBar StatusStrip;
|
|||
|
private JPanel PictureBoxPlane;
|
|||
|
private JComboBox ComboBoxSelectorMap;
|
|||
|
private JLabel LabelSpeed = new JLabel();
|
|||
|
private JLabel LabelWeight = new JLabel();
|
|||
|
private JLabel LabelColor = new JLabel();
|
|||
|
|
|||
|
protected DrawingPlane _plane;
|
|||
|
private AbstractMap _abstractMap;
|
|||
|
private Random rnd = new Random();
|
|||
|
private BufferedImage bufferImg = null;
|
|||
|
|
|||
|
public void Draw()
|
|||
|
{
|
|||
|
PictureBoxPlane.removeAll();
|
|||
|
|
|||
|
bufferImg = new BufferedImage(PictureBoxPlane.getWidth(), PictureBoxPlane.getHeight(), BufferedImage.TYPE_INT_RGB);
|
|||
|
Graphics g = bufferImg.getGraphics();
|
|||
|
g.setColor(new Color(238, 238, 238));
|
|||
|
g.fillRect(0, 0, PictureBoxPlane.getWidth(), PictureBoxPlane.getHeight());
|
|||
|
|
|||
|
if(_plane != null)
|
|||
|
{
|
|||
|
_plane.DrawTransport(g);
|
|||
|
JLabel imageOfLogo = new JLabel();
|
|||
|
imageOfLogo.setPreferredSize(PictureBoxPlane.getSize());
|
|||
|
imageOfLogo.setMinimumSize(new Dimension(1, 1));
|
|||
|
imageOfLogo.setIcon(new ImageIcon(bufferImg));
|
|||
|
PictureBoxPlane.add(imageOfLogo, BorderLayout.CENTER);
|
|||
|
}
|
|||
|
|
|||
|
validate();
|
|||
|
}
|
|||
|
|
|||
|
@Override
|
|||
|
public void paint(Graphics g)
|
|||
|
{
|
|||
|
super.paint(g);
|
|||
|
Draw();
|
|||
|
}
|
|||
|
|
|||
|
public void SetData(DrawingPlane _plane)
|
|||
|
{
|
|||
|
PictureBoxPlane.removeAll();
|
|||
|
|
|||
|
LabelSpeed.setText("Скорость: " + _plane.GetPlane().GetSpeed() + " ");
|
|||
|
LabelWeight.setText("Вес: " + _plane.GetPlane().GetWeight() + " ");
|
|||
|
LabelColor.setText("Цвет: r = " + _plane.GetPlane().GetColor().getRed() + " g = " + _plane.GetPlane().GetColor().getGreen() +
|
|||
|
" b = " + _plane.GetPlane().GetColor().getBlue());
|
|||
|
|
|||
|
JLabel imageWithMapAndObject = new JLabel();
|
|||
|
imageWithMapAndObject.setPreferredSize(PictureBoxPlane.getSize());
|
|||
|
imageWithMapAndObject.setMinimumSize(new Dimension(1, 1));
|
|||
|
imageWithMapAndObject.setIcon(new ImageIcon(_abstractMap.CreateMap(PictureBoxPlane.getWidth(), PictureBoxPlane.getHeight(), new DrawningObjectPlane((_plane)))));
|
|||
|
PictureBoxPlane.add(imageWithMapAndObject, BorderLayout.CENTER);
|
|||
|
PictureBoxPlane.revalidate();
|
|||
|
}
|
|||
|
|
|||
|
public FormMap()
|
|||
|
{
|
|||
|
_abstractMap = new SimpleMap();
|
|||
|
//создание строки отображения скорости, веса и цвета объекта
|
|||
|
Box LableBox = Box.createHorizontalBox();
|
|||
|
LableBox.setMinimumSize(new Dimension(1, 20));
|
|||
|
LableBox.add(LabelSpeed);
|
|||
|
LableBox.add(LabelWeight);
|
|||
|
LableBox.add(LabelColor);
|
|||
|
StatusStrip.add(LableBox);
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
Image img = ImageIO.read(getClass().getResource("resourses/Up.png"));
|
|||
|
ButtonUp.setIcon(new ImageIcon(img));
|
|||
|
img = ImageIO.read(getClass().getResource("resourses/Left.png"));
|
|||
|
ButtonLeft.setIcon(new ImageIcon(img));
|
|||
|
img = ImageIO.read(getClass().getResource("resourses/Down.png"));
|
|||
|
ButtonDown.setIcon(new ImageIcon(img));
|
|||
|
img = ImageIO.read(getClass().getResource("resourses/Right.png"));
|
|||
|
ButtonRight.setIcon(new ImageIcon(img));
|
|||
|
} catch (Exception ex)
|
|||
|
{
|
|||
|
System.out.println(ex.getMessage());
|
|||
|
}
|
|||
|
|
|||
|
_plane = new DrawingPlane(rnd.nextInt(100, 300), rnd.nextInt(1000, 2000), new Color(rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256)));
|
|||
|
|
|||
|
ButtonCreate.addActionListener(new ActionListener() {
|
|||
|
@Override
|
|||
|
public void actionPerformed(ActionEvent e) {
|
|||
|
Random rnd = new Random();
|
|||
|
var plane = new DrawingPlane(rnd.nextInt(100, 300), rnd.nextInt(1000, 2000),
|
|||
|
new Color(rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256)));
|
|||
|
plane.SetPosition(rnd.nextInt(10, 100), rnd.nextInt(10, 100),
|
|||
|
PictureBoxPlane.getWidth(), PictureBoxPlane.getHeight());
|
|||
|
SetData(plane);
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
ButtonUp.addActionListener(new ActionListener() {
|
|||
|
@Override
|
|||
|
public void actionPerformed(ActionEvent e) {
|
|||
|
PictureBoxPlane.removeAll();
|
|||
|
|
|||
|
JLabel imageWithMapAndObject = new JLabel();
|
|||
|
imageWithMapAndObject.setPreferredSize(PictureBoxPlane.getSize());
|
|||
|
imageWithMapAndObject.setMinimumSize(new Dimension(1, 1));
|
|||
|
imageWithMapAndObject.setIcon(new ImageIcon(_abstractMap.MoveObject((Direction.Up))));
|
|||
|
|
|||
|
PictureBoxPlane.add(imageWithMapAndObject, BorderLayout.CENTER);
|
|||
|
PictureBoxPlane.revalidate();
|
|||
|
PictureBoxPlane.repaint();
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
ButtonLeft.addActionListener(new ActionListener() {
|
|||
|
@Override
|
|||
|
public void actionPerformed(ActionEvent e) {
|
|||
|
PictureBoxPlane.removeAll();
|
|||
|
|
|||
|
JLabel imageWithMapAndObject = new JLabel();
|
|||
|
imageWithMapAndObject.setPreferredSize(PictureBoxPlane.getSize());
|
|||
|
imageWithMapAndObject.setMinimumSize(new Dimension(1, 1));
|
|||
|
imageWithMapAndObject.setIcon(new ImageIcon(_abstractMap.MoveObject((Direction.Left))));
|
|||
|
|
|||
|
PictureBoxPlane.add(imageWithMapAndObject, BorderLayout.CENTER);
|
|||
|
PictureBoxPlane.revalidate();
|
|||
|
PictureBoxPlane.repaint();
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
ButtonDown.addActionListener(new ActionListener() {
|
|||
|
@Override
|
|||
|
public void actionPerformed(ActionEvent e) {
|
|||
|
PictureBoxPlane.removeAll();
|
|||
|
|
|||
|
JLabel imageWithMapAndObject = new JLabel();
|
|||
|
imageWithMapAndObject.setPreferredSize(PictureBoxPlane.getSize());
|
|||
|
imageWithMapAndObject.setMinimumSize(new Dimension(1, 1));
|
|||
|
imageWithMapAndObject.setIcon(new ImageIcon(_abstractMap.MoveObject((Direction.Down))));
|
|||
|
|
|||
|
PictureBoxPlane.add(imageWithMapAndObject, BorderLayout.CENTER);
|
|||
|
PictureBoxPlane.revalidate();
|
|||
|
PictureBoxPlane.repaint();
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
ButtonRight.addActionListener(new ActionListener() {
|
|||
|
@Override
|
|||
|
public void actionPerformed(ActionEvent e) {
|
|||
|
PictureBoxPlane.removeAll();
|
|||
|
|
|||
|
JLabel imageWithMapAndObject = new JLabel();
|
|||
|
imageWithMapAndObject.setPreferredSize(PictureBoxPlane.getSize());
|
|||
|
imageWithMapAndObject.setMinimumSize(new Dimension(1, 1));
|
|||
|
imageWithMapAndObject.setIcon(new ImageIcon(_abstractMap.MoveObject((Direction.Right))));
|
|||
|
|
|||
|
PictureBoxPlane.add(imageWithMapAndObject, BorderLayout.CENTER);
|
|||
|
PictureBoxPlane.revalidate();
|
|||
|
PictureBoxPlane.repaint();
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
ButtonCreateModif.addActionListener(new ActionListener() {
|
|||
|
@Override
|
|||
|
public void actionPerformed(ActionEvent e) {
|
|||
|
_plane = new DrawingAirbus(rnd.nextInt(100, 300), rnd.nextInt(1000, 2000),
|
|||
|
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());
|
|||
|
_plane.SetPosition(rnd.nextInt(100, 500), rnd.nextInt(10, 100),
|
|||
|
PictureBoxPlane.getWidth(), PictureBoxPlane.getHeight());
|
|||
|
SetData(_plane);
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
|
|||
|
ComboBoxSelectorMap.addActionListener(new ActionListener() {
|
|||
|
@Override
|
|||
|
public void actionPerformed(ActionEvent e) {
|
|||
|
ComboBoxSelectorMap = (JComboBox)e.getSource();
|
|||
|
String item = (String)ComboBoxSelectorMap.getSelectedItem();
|
|||
|
switch(item)
|
|||
|
{
|
|||
|
case "Простая карта":
|
|||
|
_abstractMap = new SimpleMap();
|
|||
|
break;
|
|||
|
case "Буря в пустыне":
|
|||
|
_abstractMap = new DesertStormMap();
|
|||
|
break;
|
|||
|
case "Звёздные войны":
|
|||
|
_abstractMap = new StarWarsMap();
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
}
|