Вызов метода объекта через Vector - PullRequest
1 голос
/ 30 сентября 2011

Это часть более крупной программы, которую я делаю, где пользователь может создать объект Flight, введя данные в JTextFields. Данные хранятся в векторе, который называется flightList. На второй панели моего JApplet пользователь может использовать JComboBox - flightBox - для выбора одного из созданных им Полетов. Когда Flight выбран в JComboBox, необходимо вызвать метод getPrice () для выбранного объекта Flight и отобразить его в JLabel ниже.

 private class ChoiceListener implements ActionListener
 {
  public void actionPerformed(ActionEvent event)
   {
       //needs to be completed

       if (flightBox.getSelectedIndex() == 0)
       {
           //flightBox.getSelectedItem(); // returns selected object
           outro.setText("The price for your flight is:");

           int p = flightBox.getSelectedIndex();
           Flight selectedFlight = flightList.get(p);
           String selectedPrice = money.format(selectedFlight.getPrice()) + "";

           fPrice.setText(selectedPrice);
       }

   }

Я думал, что я на правильном пути, и я пробовал много разных вариантов, но ни один из них не работает. Кроме того, я знаю, что рейсы добавляются в flightList, потому что JComboBox отображает все добавленные рейсы. Я думаю, что все ярлыки настроены правильно. Мне просто нужно выяснить, как на самом деле получить выбранный объект Flight из flightList, используя flightBox, и извлечь из него значение цены, используя метод getPrice.

EDIT

Из класса CreatePanel (инициализация переменных и сохранение объекта Flight в векторе flightList из JTextFields).

CityTime departure = new CityTime();                
departure.setCity(dC);
departure.setDate(dD);              
departure.setTime(dT);
CityTime arrival = new CityTime();
arrival.setCity(aC);
arrival.setDate(aD);
arrival.setTime(aT);

Flight newFlight = new Flight();
newFlight.setAirlines(air);
newFlight.setFlightNum(iNum = Integer.parseInt(num));
newFlight.setPrice(dPrc = Double.parseDouble(prc));
newFlight.setDeparture(dC, dD, dT);
newFlight.setArrival(aC, aD, aT);

flightList.add(newFlight);

Из класса «Полет»:

public class Flight
{
 // Flight constructor and all other variables/accessors/mutators are added here as well.
 private double price;

 public double getPrice()
 {
   return price;
 }

}

EDIT

Завершенный код:

       if (flightBox.getSelectedIndex() != -1)
       {
            //flightBox.getSelectedItem(); // returns selected object
            outro.setText("The price for your flight is:");

            int p = flightBox.getSelectedIndex();
            Flight selectedFlight = flightList.get(p);
            String selectedPrice = money.format(selectedFlight.getPrice()) + "";

            fPrice.setText(selectedPrice);
       }

Все векторы flightList были обновлены с помощью элемента.

...