私は2つ持っていますJPanel
:Panel_S、Panel_P。1つ目はステーションイベントをリッスンし、2つ目はパッセンジャーイベントをリッスンします。新しい乗客が作成されるとJList
、Panel_Pに追加されます。乗客が駅まで「行き」、駅のイベントgoToStation
で列に並ぶと、発砲され、乗客はPanel_Sに追加されます。ここで、Panel_Pが「移動」を終了し、駅のキューに入ったため、乗客をPanel_Pから削除する方法が必要です。これを実装する正しい方法は何ですか?Panel_Sは、 Panel_Sに乗客をリストから削除するように、Panel_Pに「指示」する必要がありますか?station.addPassenger(this);
fireAddPassengerEvent
JList
JList
そのリストに乗客を追加しますか?
あなたが私の質問を理解していなかったならば、私に教えてください、そして私は自分自身をよりよく説明しようとします。
public class Passenger extends Thread {
private Station station;
private Vector<PassengerEventsViewListener> viewListeners;
public Passenger(Station station)
{
this.station = station;
}
private void getInLineInStation()
{
station.addPassenger(this);
}
private void fireArrivedToStationEvent(EventArgs<Passenger> args)
{
for (PassengerEventsViewListener l : viewListeners) {
l.arrivedToStationEvent(args);
}
}
private void goToStation()
{
//going
fireArrivedToStationEvent(this);
}
@Override
public void run()
{
goToStation();
getInLineInStation();
}
}
public class Station {
private Vector<StationEventsViewListener> viewListeners;
private void fireAddPassengerEvent(Passenger passenger)
{
for (StationEventsViewListener l : viewListeners) {
l.addPassengerEvent(passenger);
}
}
public synchronized boolean addPassenger(Passenger p)
{
passengersInQueue.addLast(passenger);
fireAddPassengerEvent(passenger);
}
}