2017-12-29 13 views
-1

서문자바 FX 편집 할 콤보 - DELETE 키

에 이상한 반응은 내가 편집 할 콤보 상자를 (사용자가 목록에서 선택할 수 있지만 입력 할 수 없습니다)이있다. 나는 사용자가 그것에 집중하고 DELETE를 누르면 선택을 지워야한다고 생각하니? (나는 어떤 값을 선택한 다음 삭제를 누르면 스크린 샷이 만들어진)는 것 같다 : 여전히 이전 값이이 삭제되지 않았습니다 보여줍니다 selectionModel is null - screenshot

문제

그러나 UI 제어 할 수 있습니다. 또한 ValueChanged 리스너가 트리거되지 않았습니다.

이 콤보를 만들고 일부 값으로 채우기 원인이 방법

. 원하는 값을 선택하십시오. 이미 선택을했는데 충분하지 않습니다. 이제 DELETE를 누르면 selectionModel이 지워지지 않습니다. TAB로 선택하는 것과 동일합니다. 더블 클릭 (펼치기 및 접기)을 선택한 다음 DELETE를 누릅니다. 이제 selectionModel을 지워야하지만 UI에 여전히 값이 표시됩니다.

또 다른 사항 : ComboBox를 닫은 경우 Delete 키를 누르면 ValueChanged 수신기가 트리거됩니다. 확장 된 ComboBox에서 DELETE를 누르면 트리거되지 않지만 값은 null이됩니다.

아무도이 문제에 직면 했습니까? 자연스럽게 작동하도록하는 아이디어, 즉 selectionModel을 지우고 UI를 업데이트 하시겠습니까?

+1

[documentation] (https://docs.oracle.com/javase/9/docs/api/javafx/scene/control/ComboBox.html)에는 'valueProperty'와 선택 모델의 'itemProperty '. 코드를 직접 작성하는 대신 [MCVE]를 게시하면 도움이됩니다. –

+0

@James_D, valueProperty 대신 itemProperty를 시도했지만 아무 것도 변경되지 않았습니다. MCVE에 대한 조언을 해 주셔서 감사합니다. 다음 번에는 마음에두고 지키 겠지만, 지금은 무엇을 게시 할 지 모르겠습니다. 문제는 코드가 아니라 동작입니다. – Powercoder

+0

요점은 당신이 사람들에게 당신 *을 도울 것을 요구하고 있다는 것입니다. 실제 문제를 볼 수 있다면 쉽게 도움을 줄 수 있습니다. 나는 문제가 코드에만 국한된 것은 아니라는 것을 알고있다. 그러나 실제로 우리는 코드를 작성하는 데 시간을 투자해야한다. 어려운 일은 아니지만 직접 할 수있는 시간을내어 왜 당신을 도울 수 있습니까? 사람들이 더 쉽게 당신을 도울 수 있다면, 당신은 도움을받을 가능성이 더 큽니다. 예를 통해 문제가 무엇인지 명확하게 알 수 있습니다. –

답변

-1

글쎄, 문제는 정확히 내가 생각한 곳이 아니었다. 어떤 경우에도 "삭제"버튼은 아무런 영향을 미치지 않았고, 확장 될 때마다 항목 목록이 새로 고쳐 졌기 때문에 ComboBox이 지워졌습니다. -> 선택한 항목을 포함하여 오래된 항목이 삭제되었습니다. 문제는 동일했는데 UI가 업데이트되지 않았습니다. 그래서 ComboBox.getEditor().clear()을 추가하기 전에 onShowing 이벤트의 아이템 목록을 새로 고침하여이 문제를 해결했습니다.