2017-12-20 15 views
1

미안하지만 마음이 아프다. 나중의 사용을 위해 JTree을 선택할 변수를 생성하려고합니다. 나는 내 인생을 위해 그 변수를 설정하지 않고 나중에 보존하기 위해 노력하고있는 Jtree의 선택을 나중에 변경하는 방법을 알아낼 수 없다.값을 유지하기 위해 Java 변수를 업데이트하지 않습니다.

여기는 JTree 선택 :

CopySelection = FormTree.getSelectionModel(); 

은 내가 그것을 필요로 할 때까지 CopySelection가 변경되지 않은 상태로 유지하고 싶다.

public TreeSelectionModel CopySelection; 

내가 나중에 CopySelection를 사용하려고, 그것이 JTree에의 선택에 대한 변경 사항으로 업데이트 한 것입니다,하지만 난 그것을 원하지 않는다 :로

CopySelection 정의된다.

+0

왜 선택한 항목에 대한 참조가 아닌 선택 모델을 저장하고 있습니까? –

+0

아마도 바보 같기 때문에 가능할지 모르지만 경로가 어떻게 될지 알 수는 없습니다. 1 또는 2 또는 수백 일 수 있습니다. 부모님과 모두에게 전체 선택 모델을 유지하는 것이 더 쉽다고 생각했습니다. –

답변

0

getSelectionModel() 메소드의 작성 방법에 따라 다릅니다. C++ 메소드는 대개 객체의 복사본을 반환하지만 Java에서는 메서드가 객체에 대한 포인터를 반환합니다. 따라서 객체 자체를 반환하는 대신 반환 할 새 객체를 만들어야합니다. (내 경우에는 새 보드로 각각 하나를 복사 요소를 통해, 단순히 반복을

public ChessBoard copyChessBoard() { 
    ChessBoard newboard = new ChessBoard(); 
    this.copyTo(newboard); 
    return newboard; 
} 

사항 copyTo() 함수를 : 나는 여기에 개발하고 있어요 당신에게 자바 응용 프로그램의 예를 떠날거야 새로운 요소 만들기). 시간 소모적 인 것처럼 보이지만 데이터 구조 내부에 반복기가 있으면 O (n) 이상의 복잡성이 없어야합니다.

물론이 새로운 요소는 첫 번째 요소와 완전히 독립적입니다.

행운을 빈다. 내가 필요한 것을 알려주세요.

추신 : 당신이 짐작 하시겠지만, copySelectionModel() (내 copyChessBoard() 메소드)은 getSelectionModel()을 대체해야합니다.