139 lines
5.0 KiB
Java
139 lines
5.0 KiB
Java
|
package Trolleybus;
|
||
|
|
||
|
import javax.swing.*;
|
||
|
import java.awt.*;
|
||
|
import java.awt.event.ActionEvent;
|
||
|
import java.awt.event.ActionListener;
|
||
|
import java.util.Random;
|
||
|
|
||
|
public class FormTrolleybus{
|
||
|
private DrawingTrolleybus _drawingTrolleybus;
|
||
|
private JFrame frameTrolleybus;
|
||
|
private JPanel panelTrolleybus;
|
||
|
private JButton buttonCreate, buttonUp, buttonDown, buttonRight, buttonLeft;
|
||
|
|
||
|
public FormTrolleybus(){
|
||
|
//Само окно
|
||
|
frameTrolleybus = new JFrame();
|
||
|
frameTrolleybus.setLayout(new BorderLayout());
|
||
|
frameTrolleybus.setSize(900, 500);
|
||
|
frameTrolleybus.setTitle("Троллейбус");
|
||
|
frameTrolleybus.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||
|
|
||
|
//Панель, на которую добавляю всё
|
||
|
panelTrolleybus = new JPanel();
|
||
|
panelTrolleybus.setLayout(null);
|
||
|
|
||
|
//Кнопка создания
|
||
|
buttonCreate = new JButton("Создать");
|
||
|
//Кнопка вверх
|
||
|
buttonUp = new JButton();
|
||
|
buttonUp.setIcon(new ImageIcon("Up.png"));
|
||
|
buttonUp.setToolTipText("buttonUp");
|
||
|
//Кнопка вниз
|
||
|
buttonDown = new JButton();
|
||
|
buttonDown.setIcon(new ImageIcon("Down.png"));
|
||
|
buttonDown.setToolTipText("buttonDown");
|
||
|
//Кнопка вправо
|
||
|
buttonRight = new JButton();
|
||
|
buttonRight.setIcon(new ImageIcon("Right.png"));
|
||
|
buttonRight.setToolTipText("buttonRight");
|
||
|
//Кнопка влево
|
||
|
buttonLeft = new JButton();
|
||
|
buttonLeft.setIcon(new ImageIcon("Left.png"));
|
||
|
buttonLeft.setToolTipText("buttonLeft");
|
||
|
//Размеры, позиция кнопок
|
||
|
buttonCreate.setBounds(10,400,90,30);
|
||
|
buttonUp.setBounds(800,380,30,30);
|
||
|
buttonDown.setBounds(800,420,30,30);
|
||
|
buttonLeft.setBounds(760,420,30,30);
|
||
|
buttonRight.setBounds(840,420,30,30);
|
||
|
|
||
|
//Добавление листенеров к кнопкам
|
||
|
buttonCreate.addActionListener(new ActionListener() {
|
||
|
public void actionPerformed(ActionEvent e) {
|
||
|
ButtonCreate_Click(e);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
buttonUp.addActionListener(new ActionListener() {
|
||
|
public void actionPerformed(ActionEvent e) {
|
||
|
ButtonMove_Click(buttonUp, e);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
buttonDown.addActionListener(new ActionListener() {
|
||
|
public void actionPerformed(ActionEvent e) {
|
||
|
ButtonMove_Click(buttonDown, e);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
buttonRight.addActionListener(new ActionListener() {
|
||
|
public void actionPerformed(ActionEvent e) {
|
||
|
ButtonMove_Click(buttonRight, e);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
buttonLeft.addActionListener(new ActionListener() {
|
||
|
public void actionPerformed(ActionEvent e) {
|
||
|
ButtonMove_Click(buttonLeft, e);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
panelTrolleybus.add(buttonCreate);
|
||
|
panelTrolleybus.add(buttonUp);
|
||
|
panelTrolleybus.add(buttonDown);
|
||
|
panelTrolleybus.add(buttonLeft);
|
||
|
panelTrolleybus.add(buttonRight);
|
||
|
frameTrolleybus.add(panelTrolleybus, BorderLayout.CENTER);
|
||
|
|
||
|
frameTrolleybus.setVisible(true);
|
||
|
}
|
||
|
// Метод прорисовки троллейбуса
|
||
|
private void Draw(){
|
||
|
if (_drawingTrolleybus == null) {
|
||
|
return;
|
||
|
}
|
||
|
Graphics g = panelTrolleybus.getGraphics();
|
||
|
// Очистка перед перерисовкой
|
||
|
panelTrolleybus.paint(g);
|
||
|
_drawingTrolleybus.DrawTransport(g);
|
||
|
}
|
||
|
private void ButtonCreate_Click(ActionEvent e) {
|
||
|
Random random = new Random();
|
||
|
_drawingTrolleybus = new DrawingTrolleybus();
|
||
|
_drawingTrolleybus.Init(random.nextInt(100, 300),
|
||
|
random.nextInt(1000, 3000),
|
||
|
new Color(random.nextInt(0, 256), random.nextInt(0, 256), random.nextInt(0, 256)),
|
||
|
new Color(random.nextInt(0, 256), random.nextInt(0, 256), random.nextInt(0, 256)),
|
||
|
random.nextBoolean(),
|
||
|
random.nextBoolean(),
|
||
|
panelTrolleybus.getWidth(), panelTrolleybus.getHeight());
|
||
|
_drawingTrolleybus.SetPosition(random.nextInt(10, 100), random.nextInt(10, 100));
|
||
|
Draw();
|
||
|
}
|
||
|
protected void ButtonMove_Click(Object sender, ActionEvent e) {
|
||
|
if (_drawingTrolleybus == null)
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
JButton info = (JButton)e.getSource();
|
||
|
String name = info.getToolTipText();
|
||
|
switch (name)
|
||
|
{
|
||
|
case "buttonUp":
|
||
|
_drawingTrolleybus.MoveTransport(DirectionType.Up);
|
||
|
break;
|
||
|
case "buttonDown":
|
||
|
_drawingTrolleybus.MoveTransport(DirectionType.Down);
|
||
|
break;
|
||
|
case "buttonLeft":
|
||
|
_drawingTrolleybus.MoveTransport(DirectionType.Left);
|
||
|
break;
|
||
|
case "buttonRight":
|
||
|
_drawingTrolleybus.MoveTransport(DirectionType.Right);
|
||
|
break;
|
||
|
}
|
||
|
Draw();
|
||
|
}
|
||
|
}
|