2023-11-24 20:37:08 +03:00

125 lines
5.0 KiB
Java
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package Trolleybus;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class FormBusesCollection {
private final BusesGenericCollection<DrawingBus, DrawingObjectBus> _buses;
private JFrame frameBusesCollection;
private JPanel panelBusesCollection, panelTools;
private JButton buttonAddBus, buttonRemoveBus, buttonRefreshCollection;
private JTextField positionTextField; //поле для ввода номера позиции
public FormBusesCollection() {
InitializeComponent();
_buses = new BusesGenericCollection<>(panelBusesCollection.getWidth(), panelBusesCollection.getHeight());
}
private void InitializeComponent() {
//Само окно
frameBusesCollection = new JFrame("Набор автобусов");
frameBusesCollection.setLayout(new BorderLayout());
frameBusesCollection.setSize(900, 600);
frameBusesCollection.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Панель, на которой отрисовывается набор автобусов/троллейбусов
panelBusesCollection = new JPanel();
//Панель, с помощью которой изменяется набор
panelTools = new JPanel();
panelTools.setBorder(BorderFactory.createLineBorder(Color.BLACK));
panelTools.setLayout(null);
panelTools.setPreferredSize(new Dimension(170, 600));
//Кнопки панели panelTools
buttonAddBus = new JButton("Добавить автобус");
buttonAddBus.setBounds(10, 10, 150, 40);
buttonRemoveBus = new JButton("Удалить автобус");
buttonRemoveBus.setBounds(10, 100, 150, 40);
buttonRefreshCollection = new JButton("Обновить коллекцию");
buttonRefreshCollection.setBounds(10, 150, 150, 40);
//Добавление листенеров к кнопкам
buttonAddBus.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
buttonAddBus_Click(e);
}
});
buttonRemoveBus.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
buttonRemoveBus_Click(e);
}
});
buttonRefreshCollection.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
buttonRefreshCollection_Click(e);
}
});
//Поле ввода
positionTextField = new JTextField();
positionTextField.setBounds(10, 60, 150, 30);
//Добавление кнопок на панель panelTools
panelTools.add(buttonAddBus);
panelTools.add(positionTextField);
panelTools.add(buttonRemoveBus);
panelTools.add(buttonRefreshCollection);
frameBusesCollection.add(panelBusesCollection, BorderLayout.CENTER);
frameBusesCollection.add(panelTools, BorderLayout.EAST);
frameBusesCollection.setVisible(true);
}
private void buttonAddBus_Click(ActionEvent e) {
FormTrolleybus form = new FormTrolleybus();
//Листенер для кнопки выбора автобуса на той форме
form.buttonSelect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
DrawingBus SelectedBus = form.getBus();
if (_buses.Add(SelectedBus) != -1)
{
JOptionPane.showMessageDialog(null, "Объект добавлен");
_buses.ShowBuses(panelBusesCollection);
}
else
{
JOptionPane.showMessageDialog(null, "Не удалось добавить объект");
}
form.getFrame().dispose();
}
});
}
private void buttonRemoveBus_Click(ActionEvent e) {
String pos_string = positionTextField.getText();
//Если строка не заполнена (имеет то же значение, что и пустая строка), то считаем, что ввели 0
if (pos_string.compareTo(" ") == 0) {
pos_string = "0";
}
int pos;
//Могли ввести не цифры
try {
pos = Integer.parseInt(pos_string);
}
//Если ввели не цифры, то тоже считаем, что ввели 0
catch(Exception ex) {
pos = 0;
}
if (_buses.Remove(pos)) {
JOptionPane.showMessageDialog(null, "Объект удален");
_buses.ShowBuses(panelBusesCollection);
}
else {
JOptionPane.showMessageDialog(null, "Не удалось удалить объект");
}
}
private void buttonRefreshCollection_Click(ActionEvent e) {
_buses.ShowBuses(panelBusesCollection);
}
}