2013-05-12 55 views
1

我正在做一個大學項目(Java,不先進!),我們有一條微型鐵路,我們正在爲它做軟件部分。添加一個新的變量到現有的類/構造函數

我有一個技術問題。

所有的類,方法,ecc已經完成了,我們需要做的就是創建一個擴展。

煤礦是一個圖形用戶界面,允許您從鐵路上移除或添加火車。

例如,添加一列火車我與不可能性的參數組合框和「ADD列車」按鈕,後面的代碼是:

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); 

我還是很懷念,是對代碼「刪除火車」部分!

有是顯示現有列車的組合框,你選擇一個,然後有一個DELETE培訓按鈕,它應該從鐵路刪除火車,

對於現在的代碼很簡單:

private void removeTrainActionPerformed(java.awt.event.ActionEvent evt) {            


     railway.getTrains().remove(selectedTrain); 

但有一個問題。 有些觀察員認爲,如果事件發生,那麼觸發事件(如火車停止,或不在正確路線)的事件就會被觸發。

這位教授說我寫的刪除列車代碼不起作用,因爲我們需要殺掉我們想要刪除的列車的所有相關觀察者!

他說:

我的建議是在火車上「請將isDeleted」變量。 當您刪除列車時,將其從鐵路上移除,並將 變量設置爲1.例如,在「OnRouteSecured Observer」中,在此過程中,如果 isDeleted == true,則不執行任何操作(返回)。

所以這就是我需要添加的,但問題是,我真的不知道如何添加一個新的變量到火車!

對於創建一列火車我只是使用已經存在的構造函數,我不知道如果我必須將此變量添加到火車類或其中!

如果您需要更多的信息我會提供!

希望你能幫忙,謝謝!

+0

你曾經編程過嗎? (沒有違法) – 2013-05-12 12:11:40

+0

老師是錯的。首先,使用1而不是真是一個不好的建議。其次,從移出的列車中移除觀察者不起任何作用。火車自拆除後不會再發射。如果它不再可用,它甚至會被垃圾收集。將有一個問題是被刪除的列車被註冊爲其他對象的觀察者,但這不是你所描述的。 – 2013-05-12 12:19:22

回答

0

這聽起來像你的老師所建議的僅僅是添加一個類變量到你的對象。

public class Train { 

    private boolean deleted = false; 

    public boolean isDeleted() { 
     return this.deleted; 
    } 
} 

在未來,我將通過在計算器上張貼作爲你去是有原因的一所大學之前說你的助教,教授開始。

+0

非常感謝您的意見! 通常我總是問助教,但這是週末,他們不回答,我需要儘快完成這部分,所以我在這裏問了! 我可以問你解釋我寫的代碼嗎?因爲如果我將代碼直接放在netbeans中,在Train類中,它會給出錯誤說''; '''是預期的(我把;返回this.deleted後,而不是點,但不會改變!我沒有下拉公共布爾isDeleted {...部分!謝謝 – AJ989 2013-05-12 13:30:55

+0

我編輯的代碼,使其正確。isDeleted ()是一種可以知道火車是否被刪除的方法 – 2013-05-12 13:43:45

+0

非常感謝你,現在它更清晰了,我還有一個問題,在GUI源代碼中,當我編寫DELETE TRAIN按鈕的代碼時,我把: railway.getTrains()刪除(selectedTrain); ,然後我怎麼能寫在java中: 「坐火車變量刪除,並且將它放在TRUE」, 變量刪除的在班裏跟你說的話! 最後要做的事情,我想是去觀察員,並添加規則:如果刪除= true,不要觸發此列車的任何事件!再次感謝你 – AJ989 2013-05-12 15:26:22

相關問題