2013-05-12 3 views
1

저는 대학을위한 프로젝트를 진행하고 있습니다 (Java는 고급 버전이 아닙니다!), 우리는 소형 철도를 가지고 있으며이를 위해 소프트웨어 부분을 수행하고 있습니다.기존 클래스/생성자에 새 변수 추가하기

기술적 인 질문이 있습니다.

모든 classe, methods, ecc가 이미 완료되었으므로 확장 프로그램을 만드는 것뿐입니다.

광산은 철도에서 열차를 제거하거나 추가 할 수있는 GUI입니다.

예를 들어, 기차를 추가 나는 possibile 매개 변수 콤보 상자를, 그리고 버튼 "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 기차 버튼이, 하나를 선택하고, 이제 코드, 철도에서

을 기차를 제거해야이된다 :

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


     railway.getTrains().remove(selectedTrain); 

하지만 문제가 있습니다. 이벤트가 발생하면 트리거되는 이벤트 (예 : 열차가 중지되었거나 올바른 경로가 아닌 것처럼)를 검색하는 철도를 추적하는 일부 관찰자가 있습니다.

교수는 우리가 쓴 열차 코드 제거는 작동하지 않습니다. 왜냐하면 우리가 제거하고 싶은 열차에 대한 모든 관련 관찰자를 죽일 필요가 있기 때문입니다!

그는 말했다 :

은 내가 제안하는 것은 기차에서 "isDeleted를"변수를하는 것입니다. 열차를 삭제할 때 철도에서 열차를 제거하고 변수를 1로 설정하십시오. 예를 들어, "OnRouteSecured Observer"의 과정에서 isDeleted == true 인 경우 아무 것도 수행하지 않고 반환하십시오.

그래서 내가 추가해야 할 것이지만, 문제는 열차에 새 변수를 추가하는 방법을 모른다는 것입니다 !!

기차를 만들려면 이미 생성자를 사용하고 있습니다. 잘 모르겠습니다.이 변수를 기차 클래스에 추가해야하는지, 아니면 어디에 추가해야합니까?

더 많은 정보가 필요하면 알려드립니다.

희망을 보내 주시면 감사하겠습니다.

+0

전에 프로그래밍 해 본 적이 있습니까? (위반하지 말 것) –

+0

선생님이 틀립니다. 우선, 사실 대신 1을 사용하는 것은 나쁜 조언입니다. 둘째, 제거 된 열차에서 관측자를 제거하는 것은 어떤 목적에도 도움이되지 않습니다. 열차가 제거 된 이후 더 이상 eny 이벤트를 발생시키지 않습니다. 더 이상 연결할 수없는 경우 쓰레기 수거됩니다.제거 된 열차가 다른 물체의 관찰자로 등록되었지만 문제는 사용자가 설명하는 것이 아닙니다. –

답변

0

선생님이 제안하는 것처럼 들리는 것은 단순히 개체에 클래스 변수를 추가하는 것입니다. 난 당신이 이유가 대학에 가서에 StackOverflow에 게시하기 전에 당신의 조교 나 교수와 대화를 시작 것입니다 미래에

public class Train { 

    private boolean deleted = false; 

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

.

+0

입력 해 주셔서 감사합니다. 일반적으로 저는 TA에게 도움을 요청하지만, 주말에 답을하지 않습니다. 그리고 나는이 부분을 최대한 빨리 끝내야합니다. 그래서 여기에서 물었습니다! 작성한 코드를 설명해 줄 것을 요청할 수 있습니까? 왜냐하면 내가 netbeans에 직접 코드를 넣으면, Train 클래스에서, 그것은 오류를 제공한다. ''예상된다 (나는 넣었다; 점 대신에 this.deleted를 반환했지만, 변경되지 않는다!) public boolean isDeleted {... 부분을 understend하지 않았다. 고맙다. – AJ989

+0

나는 그것을 수정하기 위해 코드를 편집했다.()는 열차가 삭제되었는지 아닌지를 알 수있는 방법입니다. –

+0

대단히 고맙습니다. 이제 GUI 소스 코드에서 DELETE TRAIN 버튼에 대한 코드를 작성할 때 훨씬 더 명확 해졌습니다. , DELETED이 변수를 "기차 변수가 삭제 가지고 가고, TRUE에 설정" 을하고 어떻게 자바에서 쓸 수 있습니다 (selectedTrain)를 제거 railway.getTrains을() :., 내가 넣어 수업에서 당신이 말했던 것처럼 열차 마지막으로 할 일은 관찰자를 방문하여 규칙을 추가하는 것입니다. Deleted = true 일 경우이 열차의 이벤트를 트리거하지 마십시오! – AJ989

관련 문제