2016-12-19 2 views
1

나는 과거에 드래그 앤 드롭 기능이있는 ContainerList를 사용 해왔다. ContainerList가 더 이상 사용되지 않으므로 다른 것을 사용하려고합니다. 문서에서 권장하는대로 Y 축에 BoxLayout이있는 컨테이너 만 사용하고 싶습니다. 그러나이 점을 살펴보면 다소 어려워 보입니다.Containerlist없이 드래그 앤 드롭

(재 작성) 레이블 및 버튼이 포함 된 항목 목록을 작성하려고합니다. 항목을 longPointerPress로 정렬 한 다음 드래그 앤 드롭하십시오.

이전에는 ContainerList 및 ContainerList.Entry 클래스를 크게 수정하여이 작업을 처리했습니다.

하지만 컨테이너에서는이 작업을 수행하는 방법을 전혀 볼 수 없습니다.

내가보기 이것은 포함합니다 :

  • 컨테이너 및 재정 de.sae.tryout.modules.dragdrop.DraggableContainer.getComponentAt (INT, INT)에서 파생 된 ListEntry 구성 요소의 생성 항상이를 반환 권장 합이 무엇인가하는 것이 적합한 경우 하위 구성 요소에 대한 포인터 이벤트를 통과 한 상태의 따라 포인터의 상호 작용과
  • 을 모두 차단하는
  • 이 이후

는 증거로 채택 트릭으로 나에게 질문을 보인다 이러한 항목의 정렬 가능한 목록을 표시하는 방법은 각 항목에 레이블과 단추가 포함되어 있습니까?

답변

0

모든 항목은 컨테이너 구성 요소처럼 느껴지 기 때문에 리드 구성 요소에 setDraggable(true)을 사용하고 상위 항목에 setDropTarget(true)을 사용하면 끌어서 놓기가 허용됩니다.

문제가 될 수도 있지만 그렇지 않을 수도있는 긴 포인터 누름과 동일한 동작을하지 않습니다. 이것이 문제가되는 경우 리드 구성 요소의 끌기 초기화 동작을 무시하여 작동하는 방식에 더 가깝게 만들 수 있습니다.

+0

내 목록의 항목에는 단추와 레이블이 포함됩니다. label에 모든 포인터 이벤트를 가져 오기 때문에 label을 leadComponent로 만들면 버튼을 사용할 수 없습니다. leadComponent 버튼을 만들면이 버튼 만 실행되고 다른 형제 구성 요소는 탭됩니다. 당신의 솔루션이 나를 위해 작동하지 않습니다. –

+0

https://www.codenameone.com/blog/unleading-mutating-accordion.html을 참조하십시오. –