125 lines
5.0 KiB
Java
125 lines
5.0 KiB
Java
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);
|
||
}
|
||
} |