2014-11-11 3 views
1

조건에 따라 ListView에서 사용자 선택을 취소하려고합니다. ListView 및 ListCell에서 마우스 클릭 및 마우스 누름 이벤트를 소비하려고 시도했지만 작동하지 않았습니다. 선택한 항목 속성이 변경된 후 bu 이벤트가 발생하는 이유를 이해할 수 없습니다. 사용자 선택을 취소하려면 어떻게해야합니까?ListView에서 선택을 취소하는 방법?

답변

3

제대로 이해하면 사용자가 항목을 클릭하여 선택하지 못하도록하고 싶습니다.

listView.addEventHandler(MOUSE_CLICKED, click -> click.consume()); 

실행되는 다른 클릭 핸들러를 방지하지 않습니다 : 본인은이 같은 솔루션을 시도한다고 가정. 그랬더라도 내부 이벤트 핸들러는 이벤트 핸들러보다 먼저 실행되는 것 같습니다. 핸들러가 실행되기 전에 선택한 항목이 변경되기 때문입니다.

당신은 해고되는 모든 이벤트 핸들러를 방지하기 위해 이벤트 필터을 추가해야합니다

listView.addEventFilter(MOUSE_CLICKED, click -> click.consume()); 
-1
listView.getSelectionModel().clearSelection(); 
+0

그 종종 더 나은 코드에만 답변을하는 것보다 간략한 설명을 할 수 있습니다. – IdeaHat

관련 문제