我有 2 个JPanel
:Panel_S,Panel_P。第一个监听站事件,第二个监听乘客事件。创建新乘客时,它会添加到JList
Panel_P中。当乘客完成“去”到车站goToStation
并排队时,station.addPassenger(this);
车站的事件fireAddPassengerEvent
被触发,乘客被添加到JList
Panel_S中。现在,我需要一些如何从Panel_PJList
中移除乘客的方法,因为它完成了“出发”并进入了车站的队列。实现这一点的正确方法是什么?Panel_S是否应该“告诉” Panel_P一旦Panel_S将乘客从其列表中删除将乘客添加到其列表中?
如果您不理解我的问题,请告诉我,我会尽力更好地解释自己。
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);
}
}