我正在为大学做一个项目(Java,不是高级的!),我们有一个微型铁路,我们正在为它做软件部分。
我有一个技术问题。
所有的类,方法,ecc都已经完成了,我们所需要做的就是创建一个扩展。
Mine是一个GUI,允许您从铁路中删除或添加火车。
例如,对于添加火车,我有一个包含可能参数的组合框和一个"ADD train"按钮,后面的代码是:private void addTrainActionPerformed(java.awt.event.ActionEvent evt) {
//creates a new train with given parameters, it adds it to the railway
Train t = new Train(id, locomotive);
railway.getTrains().add(t);
我仍然怀念的是"REMOVE A TRAIN"部分的代码!
有一个组合框显示现有的列车,你选择一个,然后有一个DELETE train按钮,它应该从铁路上删除列车,
现在代码简单如下:
private void removeTrainActionPerformed(java.awt.event.ActionEvent evt) {
railway.getTrains().remove(selectedTrain);
但是有一个问题。有一些观察者,铁路搜索事件(比如火车停了,或者不在正确的路线上),如果事件发生,这些事件将被触发。
教授说,我写的Remove Train代码不工作,因为我们需要杀死所有相关的观察者为我们想要删除的火车!
他说:
我的建议是在列车中有一个"isDeleted"变量。当您删除火车时,将其从铁路上移除,并设置变量为1。例如,在"OnRouteSecured Observer"中,如果isDeleted==true,不做任何事情(返回)。
所以这就是我需要添加的,但问题是,我真的不知道如何添加一个新的变量到火车!!
对于创建列车,我只是使用已经存在的构造函数,我不知道是否必须将这个变量添加到train类或在哪里!
如果你需要更多的信息,我将提供!
希望你能帮忙,谢谢!
听起来你的老师建议的只是给你的对象添加一个class变量。
public class Train {
private boolean deleted = false;
public boolean isDeleted() {
return this.deleted;
}
}
在未来,我会先和你的助教或教授谈谈,然后再在StackOverflow上发帖,因为你去大学是有原因的