135 lines
5.2 KiB
Java
Raw Permalink Normal View History

2023-12-09 17:25:15 +04:00
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
2023-12-09 21:01:39 +04:00
2023-12-09 17:25:15 +04:00
public class RandomFrame extends JFrame {
RandomPanel panel = new RandomPanel();
RandomFrame() {
this.setSize(710, 535);
2023-12-09 21:01:39 +04:00
this.setTitle("CruiserRandom");
2023-12-09 17:25:15 +04:00
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setResizable(false);
this.setLocationRelativeTo(null);
this.add(panel);
this.setVisible(true);
}
public class RandomPanel extends JPanel {
static final int SCREEN_W = 700;
static final int SCREEN_H = 500;
GenericCreate<EntityCruiser, IDop> _genericCreate = new GenericCreate<>(10, 10);
ComponentsPanel entitiesPanel = new ComponentsPanel();
ComponentsPanel wheelsPanel = new ComponentsPanel();
2023-12-09 21:01:39 +04:00
DrawingCruiser generatedCruiser;
2023-12-09 17:25:15 +04:00
RandomPanel() {
this.setLayout(null);
this.setPreferredSize(new Dimension(SCREEN_W, SCREEN_H));
2023-12-09 21:01:39 +04:00
JButton buttonCruiser = new JButton("Создать простой объект");
buttonCruiser.setBounds(20, 20, 130, 30);
buttonCruiser.addActionListener(new ActionListener() {
2023-12-09 17:25:15 +04:00
@Override
public void actionPerformed(ActionEvent e) {
GameFrame dialogWindow = new GameFrame();
2023-12-09 21:01:39 +04:00
if (dialogWindow.getSelectedCruiser() != null){
if (dialogWindow.getSelectedCruiser() instanceof DrawingAdvancedCruiser) {
_genericCreate.Add(((DrawingAdvancedCruiser) dialogWindow.getSelectedCruiser()).getEntityCruiser());
2023-12-09 17:25:15 +04:00
}
else {
2023-12-09 21:01:39 +04:00
_genericCreate.Add(dialogWindow.getSelectedCruiser().EntityCruiser);
2023-12-09 17:25:15 +04:00
}
repaint();}
else{
2023-12-09 21:01:39 +04:00
System.out.println("Selected cruiser is null!");
2023-12-09 17:25:15 +04:00
}
}
});
2023-12-09 21:01:39 +04:00
this.add(buttonCruiser);
JButton buttonIDop = new JButton("Создать палубы");
2023-12-09 17:25:15 +04:00
buttonIDop.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Random random = new Random();
IDop interWheels;
switch(random.nextInt(1, 4)){
case 1:
interWheels = new NumberOfWheels(random.nextInt(2, 5));
break;
case 2:
interWheels = new DopClassRect(random.nextInt(2, 5));
break;
default:
interWheels = new DopClassMixed(random.nextInt(2, 5));
break;
}
_genericCreate.Add(interWheels);
repaint();
}
});
buttonIDop.setBounds(20 + 130 + 20, 20, 130, 30);
this.add(buttonIDop);
2023-12-09 21:01:39 +04:00
JButton buttonCreateRandomCruiser = new JButton("Сгенерировать объект");
buttonCreateRandomCruiser.addActionListener(new ActionListener() {
2023-12-09 17:25:15 +04:00
@Override
public void actionPerformed(ActionEvent e) {
2023-12-09 21:01:39 +04:00
generatedCruiser = _genericCreate.DrawingGeneratedCruiser();
if (generatedCruiser != null) {
generatedCruiser.SetPosition(430, 160);
2023-12-09 17:25:15 +04:00
}
repaint();
}
});
2023-12-09 21:01:39 +04:00
buttonCreateRandomCruiser.setBounds(20 + 130 + 20 + 235, 20 + 80, 190, 30);
this.add(buttonCreateRandomCruiser);
2023-12-09 17:25:15 +04:00
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
draw(g);
}
public void draw(Graphics g) {
int startX = 20 ;
int startY = 70;
int startXForWheels = 170;
int startYForWheels = 30;
int height = 70;
int width = 110;
2023-12-09 21:01:39 +04:00
_genericCreate.DrawEntitiesCruiser(g, startX, startY);
2023-12-09 17:25:15 +04:00
for (int i=0; i < _genericCreate.getWheels().size(); i++) {
_genericCreate.getWheels().get(i).drawWheels(g, startXForWheels, startYForWheels + i * 30, Color.black);
}
2023-12-09 21:01:39 +04:00
if (generatedCruiser != null){
generatedCruiser.DrawTransport(g);
2023-12-09 17:25:15 +04:00
}
}
}
public class ComponentsPanel extends JPanel {
static final int SCREEN_W = 130;
static final int SCREEN_H = 400;
ComponentsPanel() {
this.setSize(SCREEN_W, SCREEN_H);
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
}
public void draw(Graphics g) {
}
}
public class CarRandomPanel extends JPanel {
static final int SCREEN_W = 200;
static final int SCREEN_H = 200;
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
draw(g);
}
public void draw(Graphics g) {
}
}
}