import javax.swing.*; import java.awt.*; import java.awt.event.ActionListener; import java.util.Random; public class PictureBoxBulldozer extends JPanel { private DrawningBulldozer drawningBulldozer; private JButton buttonLeft; private JButton buttonUp; private JButton buttonRight; private JButton buttonDown; private JButton buttonCreateBulldozer; public PictureBoxBulldozer() { setLayout(null); setBounds(0, 0, 800, 450); buttonCreateBulldozer = new JButton("Создать"); buttonCreateBulldozer.setFocusable(false); buttonCreateBulldozer.setBounds(12, 415, 100, 30); add(buttonCreateBulldozer); buttonCreateBulldozer.addActionListener(e -> { Random random = new Random(); drawningBulldozer = new DrawningBulldozer(); drawningBulldozer.Init(random.nextInt(100)+100, random.nextInt(2000)+1000, new Color(random.nextInt(256), random.nextInt(256), random.nextInt(256)), new Color(random.nextInt(256), random.nextInt(256), random.nextInt(256)), new Color(random.nextInt(256), random.nextInt(256), random.nextInt(256)), random.nextBoolean(), random.nextBoolean(), this.getWidth(), this.getHeight(), random.nextInt(3) + 1); drawningBulldozer.SetPosition(random.nextInt(90) + 10, random.nextInt(90) + 10); repaint(); }); ActionListener buttonMoveListener = e -> { if (drawningBulldozer == null) { return; } String buttonName = ((JButton) e.getSource()).getName(); switch (buttonName) { case ("buttonUp"): drawningBulldozer.MoveTransport(DirectionBulldozer.Up); break; case ("buttonDown"): drawningBulldozer.MoveTransport(DirectionBulldozer.Down); break; case ("buttonLeft"): drawningBulldozer.MoveTransport(DirectionBulldozer.Left); break; case ("buttonRight"): drawningBulldozer.MoveTransport(DirectionBulldozer.Right); break; } repaint(); }; buttonLeft = new JButton(); buttonLeft.setName("buttonLeft"); buttonLeft.setFocusable(false); buttonLeft.setPreferredSize(new Dimension(30, 30)); buttonLeft.setIcon(new ImageIcon("Resources/left.png")); buttonLeft.addActionListener(buttonMoveListener); buttonLeft.setBounds(686, 408, 30, 30); add(buttonLeft); buttonRight = new JButton(); buttonRight.setName("buttonRight"); buttonRight.setFocusable(false); buttonRight.setPreferredSize(new Dimension(30, 30)); buttonRight.setIcon(new ImageIcon("Resources/right.png")); buttonRight.addActionListener(buttonMoveListener); buttonRight.setBounds(758, 408, 30, 30); add(buttonRight); buttonDown = new JButton(); buttonDown.setName("buttonDown"); buttonDown.setFocusable(false); buttonDown.setPreferredSize(new Dimension(30, 30)); buttonDown.setIcon(new ImageIcon("Resources/down.png")); buttonDown.addActionListener(buttonMoveListener); buttonDown.setBounds(722, 408, 30, 30); add(buttonDown); buttonUp = new JButton(); buttonUp.setName("buttonUp"); buttonUp.setFocusable(false); buttonUp.setPreferredSize(new Dimension(30, 30)); buttonUp.setIcon(new ImageIcon("Resources/up.png")); buttonUp.addActionListener(buttonMoveListener); buttonUp.setBounds(722, 372, 30, 30); add(buttonUp); setPreferredSize(new Dimension(800, 450)); } @Override protected void paintComponent(Graphics g) { if (drawningBulldozer == null) { return; } super.paintComponent(g); Graphics2D g2d = (Graphics2D) g; drawningBulldozer.DrawTransport(g2d); } }