2009-11-19 5 views
0

내 프로그램에 두 개의 트리가 있습니다. Iam은 JTree의 clearselection() 메서드를 사용하여 다른 트리의 항목이 선택 될 때 1 트리의 선택을 지 웁니다.Java clearselection() 메서드의 문제

if (tree == tree1){ 

     tree2.clearSelection(); 

    } else { 

     tree1.clearSelection(); 

    } 

내가 처음으로 선택하는 경우, 그것은 잘 작동 (현재의 선택이 트리거 된에 한 되의 valueChanged 이벤트 리스너 내부와 나무) : 주요 코드는 다음과 같은 것입니다. 그러나이 후에 다른 트리에서 선택하려고하면 valueChanged 메서드가 두 번 호출되는 것으로 나타납니다. 어떤 해결책?

답변

1

내가 준 코드를 this question으로 사용 했습니까?

무한 루프 도입 문제를 해결하는 플래그가 포함되어 있으며 현재 이벤트를 처리 할 때 후속 선택 이벤트도 무시해야합니다.

BTW 이전 질문과 직접 ​​관련이 있다고 가정하면 이전 게시물에 댓글을다는 것이 나을 것입니다. 그런 식으로 모든 상황이 한 곳에서 유지됩니다.

+0

불량. 나는 당신이 그것에 대해 통보를 받았다고 가정 할 때 실제로 이전 질문을 편집했습니다. 나는 당신이 준 코드를 정확히 사용했습니다. 그것은 작동하지 않았다. 다시 한 번 기회를주고 알려 드리겠습니다. – Goutham

0

clearSelection()도 valueChanged를 발생 시키므로 해결 방법이 필요하므로 플래그를 추가하고 선택 항목을 지우지 마십시오.

EDIT. 어떤 깃발을 사용하는 것이 까다 롭습니다. MouseListener를 대신 사용하고 mouseClicked 이벤트 내에서 동일한 코드를 실행할 수 있습니까?