155 lines
5.9 KiB
Java
155 lines
5.9 KiB
Java
import Drawnings.DrawningAirbus;
|
||
import Generics.AirbusGenericCollection;
|
||
import MovementStrategy.DrawningObjectAirbus;
|
||
|
||
import java.awt.*;
|
||
import java.awt.event.ActionEvent;
|
||
import java.awt.event.ActionListener;
|
||
import javax.swing.*;
|
||
|
||
public class FormAirbusCollection extends JFrame {
|
||
|
||
Canvas canvas;
|
||
|
||
static int pictureBoxWidth = 650;
|
||
static int pictureBoxHeight = 460;
|
||
JButton buttonAddAirbus;
|
||
JButton buttonDeleteAirbus;
|
||
JButton buttonUpdate;
|
||
// открыть форму генерации
|
||
private JButton buttonGenerateAirbus;
|
||
|
||
JTextField textFieldNumber = new JTextField();
|
||
private AirbusGenericCollection<DrawningAirbus, DrawningObjectAirbus> _airbus;
|
||
|
||
FormAirbusCollection() {
|
||
canvas = new Canvas();
|
||
|
||
JFrame frame = new JFrame("Коллекция аэробусов");
|
||
_airbus = new AirbusGenericCollection<DrawningAirbus, DrawningObjectAirbus> (pictureBoxWidth, pictureBoxHeight);
|
||
canvas._airbus = _airbus;
|
||
|
||
buttonAddAirbus = new JButton("Добавить аэробус");
|
||
buttonAddAirbus.setMargin(new Insets(0, 0, 0, 0));
|
||
textFieldNumber = new JTextField();
|
||
buttonDeleteAirbus = new JButton("Удалить аэробус");
|
||
buttonDeleteAirbus.setMargin(new Insets(0, 0, 0, 0));
|
||
buttonUpdate = new JButton("Обновить");
|
||
buttonUpdate.setMargin(new Insets(0, 0, 0, 0));
|
||
buttonGenerateAirbus = new JButton("Форма генерации");
|
||
buttonGenerateAirbus.setMargin(new Insets(0,0,0,0));
|
||
|
||
setSize(800,500);
|
||
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||
setLayout(null);
|
||
|
||
buttonAddAirbus.setBounds(pictureBoxWidth, 20, 120, 25);
|
||
textFieldNumber.setBounds(pictureBoxWidth, buttonAddAirbus.getY()+30, 120, 25);
|
||
buttonDeleteAirbus.setBounds(pictureBoxWidth, textFieldNumber.getY()+30, 120, 25);
|
||
buttonUpdate.setBounds(pictureBoxWidth, buttonDeleteAirbus.getY()+30, 120, 25);
|
||
buttonGenerateAirbus.setBounds(pictureBoxWidth, buttonUpdate.getY()+30, 120, 25);
|
||
canvas.setBounds(0,0,pictureBoxWidth, pictureBoxHeight);
|
||
|
||
add(canvas);
|
||
add(buttonAddAirbus);
|
||
add(buttonDeleteAirbus);
|
||
add(buttonUpdate);
|
||
add(buttonGenerateAirbus);
|
||
add(textFieldNumber);
|
||
setVisible(true);
|
||
|
||
// логика формы
|
||
buttonAddAirbus.addActionListener(AddAirbusListener);
|
||
buttonDeleteAirbus.addActionListener(DeleteAirbusListener);
|
||
buttonUpdate.addActionListener(UpdateAirbusListener);
|
||
buttonGenerateAirbus.addActionListener(OpenGenerationForm);
|
||
}
|
||
|
||
ActionListener OpenGenerationForm = new ActionListener()
|
||
{
|
||
@Override
|
||
public void actionPerformed(ActionEvent e) {
|
||
FormGenerationAirbus form = new FormGenerationAirbus();
|
||
}
|
||
};
|
||
|
||
ActionListener AddAirbusListener = new ActionListener()
|
||
{
|
||
@Override
|
||
public void actionPerformed(ActionEvent e) {
|
||
FormAirbus form = new FormAirbus();
|
||
// выбор аэробуса на второй форме
|
||
form.buttonSelectAirbus.addActionListener(
|
||
new ActionListener() {
|
||
@Override
|
||
public void actionPerformed(ActionEvent e) {
|
||
DrawningAirbus selectedAirbus = form._drawningAirbus;
|
||
form.dispose();
|
||
if (selectedAirbus != null) {
|
||
if (_airbus.Add(selectedAirbus) != -1) {
|
||
JOptionPane.showMessageDialog(null, "Объект добавлен");
|
||
_airbus.ShowAirbus();
|
||
canvas.repaint();
|
||
} else {
|
||
JOptionPane.showMessageDialog(null, "Не удалось добавить объект", "Ошибка", JOptionPane.ERROR_MESSAGE);
|
||
canvas.repaint();
|
||
}
|
||
}
|
||
}
|
||
}
|
||
);
|
||
}
|
||
};
|
||
|
||
ActionListener DeleteAirbusListener = new ActionListener()
|
||
{
|
||
@Override
|
||
public void actionPerformed(ActionEvent e) {
|
||
int pos;
|
||
try {
|
||
pos = Integer.parseInt(textFieldNumber.getText());
|
||
} catch (Exception ex) {
|
||
JOptionPane.showMessageDialog(null, "Ошибка ввода", "Ошибка", JOptionPane.ERROR_MESSAGE);
|
||
return;
|
||
}
|
||
Object[] options= {"да", "нет"};
|
||
if (JOptionPane.showOptionDialog(null, "Удалить объект?", "Удаление", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new Object[] { "Да", "Нет"}, "Да")
|
||
== JOptionPane.NO_OPTION)
|
||
{
|
||
return;
|
||
}
|
||
if (_airbus.Remove(pos) != false)
|
||
{
|
||
_airbus.ShowAirbus();
|
||
canvas.repaint();
|
||
JOptionPane.showMessageDialog(null, "Объект удален");
|
||
} else {
|
||
JOptionPane.showMessageDialog(null, "Не удалось удалить объект", "Ошибка", JOptionPane.ERROR_MESSAGE);
|
||
}
|
||
}
|
||
};
|
||
|
||
ActionListener UpdateAirbusListener = new ActionListener()
|
||
{
|
||
@Override
|
||
public void actionPerformed(ActionEvent e) {
|
||
_airbus.ShowAirbus();
|
||
canvas.repaint();
|
||
}
|
||
};
|
||
|
||
class Canvas extends JComponent {
|
||
public AirbusGenericCollection<DrawningAirbus, DrawningObjectAirbus> _airbus;
|
||
|
||
public Canvas() {
|
||
}
|
||
|
||
public void paintComponent(Graphics g) {
|
||
super.paintComponents(g);
|
||
if (_airbus.ShowAirbus() != null) {
|
||
g.drawImage(_airbus.ShowAirbus(), 0, 0, this);
|
||
}
|
||
super.repaint();
|
||
}
|
||
}
|
||
} |