D
denis90
Итак опыт работы с Явой 2 дня.
Делаю человеку курсовую работу. Нужно смоделировать работу аэропорта.
GUI на Swinge
Немного контекста: есть панелька на которой расположены кнопки разных действий (Зарегистрировать рейс, разрешить посадку, разрешить взлёт и т.д). При нажатии на кнопку для примера "Зарегистрировать рейс" ниже должна появиться формочка для ввода данных и кнопка "Добавить".
Нижу привожу код обработчика события нажатия на кнопку "Зарегистрировать рейс"
Внутри обработчика создается формочка, кнопка "Добавить" и опять таки обработчик для кнопки "Добавить".
Вопрос: Насколько мои действия адекватны?
Как можно по другому? Как нужно?
Делаю человеку курсовую работу. Нужно смоделировать работу аэропорта.
GUI на Swinge
Немного контекста: есть панелька на которой расположены кнопки разных действий (Зарегистрировать рейс, разрешить посадку, разрешить взлёт и т.д). При нажатии на кнопку для примера "Зарегистрировать рейс" ниже должна появиться формочка для ввода данных и кнопка "Добавить".
Нижу привожу код обработчика события нажатия на кнопку "Зарегистрировать рейс"
C++:
btnRegister.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
GridBagLayout gbLayout = (GridBagLayout) inputDataPanel.getLayout();
inputDataPanel.removeAll();
GridBagConstraints c = new GridBagConstraints();
c.gridx = 0;
c.gridy = 0;
JLabel label1 = new JLabel("Flight ID: ");
gbLayout.setConstraints(label1, c);
inputDataPanel.add(label1);
c.gridx = 1;
final JTextField txtFlightId = new JTextField(10);
gbLayout.setConstraints(txtFlightId, c);
inputDataPanel.add(txtFlightId);
c.gridx = 0;
c.gridy = 1;
JLabel label2 = new JLabel("Plain Model: ");
gbLayout.setConstraints(label2, c);
inputDataPanel.add(label2);
c.gridx = 1;
final JTextField txtPlaneModel = new JTextField(10);
gbLayout.setConstraints(txtPlaneModel, c);
inputDataPanel.add(txtPlaneModel);
c.gridx = 0;
c.gridy = 2;
JLabel label3 = new JLabel("Destination: ");
gbLayout.setConstraints(label3, c);
inputDataPanel.add(label3);
c.gridx = 1;
final JTextField txtOrigin = new JTextField(10);
gbLayout.setConstraints(txtOrigin, c);
inputDataPanel.add(txtOrigin);
c.gridx = 0;
c.gridy = 3;
c.gridwidth = 2;
c.gridheight = 1;
c.anchor = GridBagConstraints.CENTER;
c.insets = new Insets(15,0,0,0);
JButton btnAddPlane = new JButton("Add Plane");
gbLayout.setConstraints(btnAddPlane, c);
btnAddPlane.setFocusable(false);
c.gridx = 0;
c.gridy = 4;
final JLabel lblError = new JLabel(" ");
gbLayout.setConstraints(lblError, c);
inputDataPanel.add(lblError);
btnAddPlane.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String flightID = txtFlightId.getText();
if (flightID.isEmpty()){
lblError.setText("<html><span style=\"color:red\">Error: Flight ID field is empty!</span></html>");
return;
}
String planeModel = txtPlaneModel.getText();
if(planeModel.isEmpty()){
lblError.setText("<html><span style=\"color:red\">Error: Plane Model field is empty!</span></html>");
return;
}
String originCity = txtOrigin.getText();
if (originCity.isEmpty()){
lblError.setText("<html><span style=\"color:red\">Error: Destination field is empty!</span></html>");
return;
}
if(!atc.isRegistered(flightID)){
atc.addFlight(new Plane(flightID,planeModel,originCity));
lblError.setText(flightID + " added!");
}
else{
lblError.setText("<html><span style=\"color:red\">Error: " + flightID + " is registered!</span></html>");
}
}
});
inputDataPanel.add(btnAddPlane);
inputDataPanel.revalidate();
}
});
Внутри обработчика создается формочка, кнопка "Добавить" и опять таки обработчик для кнопки "Добавить".
Вопрос: Насколько мои действия адекватны?
Как можно по другому? Как нужно?