2016-07-12 3 views
1

데스크톱 Java 응용 프로그램에 대한 화면 정렬보기를 구현할 계획입니다. 화면 배치보기, 나는 작동 많은 예를 들어, 맥 OS 또는 Windows의 화면 배치 인터페이스처럼 갭이 허용되지 않도록, 중앙 사각형 주위에 여러 개의 사각형을 배치 할 수있는 뷰를 의미 :Java의 화면 배열 제어

The screen arrangement UI on macOS

사용자는 직사각형 (중심을 제외한)을 드래그하여 다른 직사각형에 인접하게 배치 할 수 있습니다 (즉, 다른 직사각형에 연결된 다른 직사각형에 연결됨 ...). 잘못된 부분에 떨어 뜨리면 사각형이 자동으로 올바른 지점으로 이동합니다.

Example mockups of the control

나는 자바 (안드로이드)에 경험이 있지만, 데스크탑 자바 사용자 인터페이스 디자인의 작은 지식을 가지고. 이미 응용 프로그램에있는 모든 UI에 대해 Swing을 사용하고 있습니다.

일부 연구를 수행했지만 비슷한 구현이나 질문을 찾지 못했습니다.

는 그러나, 나는 바퀴를 재발견하고 싶지 않아, 그래서 나는 처음부터 구현을 시작하기 전에, 나는이 질문이 :

    내가 더 연구를 위해 사용할 수있는 어떤 검색어
  1. ?
  2. 기본으로 사용할 수있는 기본 제공 구성 요소가 있습니까?
  3. 내가 사용할 수있는 오픈 소스 구성 요소가 있습니까?
  4. 누구나 참조로 사용할 수있는 언어로 된 컨트롤의 구현을 알고 있습니까?
  5. 어떻게 그러한 컨트롤을 구현하겠습니까?

도움을 주신 데 대해 감사드립니다.

+0

* "AWT를 사용하고 있습니다."* 왜?!? 왜 AWT를 사용합니까? Swing을 위해 AWT 구성 요소를 포기해야하는 많은 이유 때문에 [이 답변] (http://stackoverflow.com/questions/6255106/java-gui-listeners-without-awt/6255978#6255978)을 참조하십시오. –

+0

@AndrewThompson UI (아직 AWT로 신속하게 구현, 핵심 기능에 집중)에 대해서만 매우 원시 스케치가 있습니다. 스윙을 사용해 주셔서 감사합니다! 적합한 Swing 구성 요소를 작성하는 방법에 대한 아이디어가 있으면 알려주십시오! –

+0

@AndrewThompson 죄송합니다, 이미 스윙을 사용하고 있습니다. 앞서 언급했듯이 필자는이 두 가지 기능에 대한 경험이별로 없으며 UI 클래스 중 하나를 직접 살펴 보았습니다. 첫 번째 가져 오기는 awt (마우스 이벤트의 경우)이므로 AWT를 사용합니다. 지금 제 질문을 수정했습니다. –

답변

2

추가 검색을 위해 어떤 검색어를 사용할 수 있습니까?

사용할 수있는 검색어 중 하나는 드래그 앤 드롭 (그리기 계획)입니다.

2. 기본으로 사용할 수있는 기본 제공 구성 요소가 있습니까?

자바는 드래그 앤 드롭을위한 클래스를 내장하고 있습니다. 여기를보세요 : Drag and Drop Turotial

3. 사용 가능한 오픈 소스 구성 요소가 있습니까?

인터넷 검색을 시도해 본 결과 꽤 많을 것으로 확신합니다. 그러나 개인적으로 필자는 필요한 작업을 수행하기 위해 오픈 소스 구성 요소가 필요하다고 생각하지 않습니다. Java Swing은 이미 사용하기 쉽고 원하는 것을 처리 할 수있는 충분한 클래스를 제공합니다.

5. 이러한 컨트롤을 어떻게 구현합니까?

Java에서 DnD를 사용하는 것 외에는 사용자 정의 페인팅 + 마우스 모션 수신기와 같은 다양한 수신기를 사용하여 유사한 기능을 구현할 수 있습니다. 이렇게하면 드래그/클릭/마우스 오버되는 구성 요소에 대해 원하는 규칙을 설정할 수 있습니다. example의 경우

+0

나는 드래그 앤 드롭이 필요한 부분을 알고 있습니다. 그러나 더 어려운 부분은 제약 조건을 적용하고 (항상 인접한 직사각형 ...) 잘못된 위치에 떨어질 때 자동 이동하므로 팁과 접근 방법을 기대하고있었습니다. –

+0

@FD_ 내 게시물의 예를 살펴보면 지그 소 퍼즐은 올바른 위치에있을 때 실제로 "자동 맞춤"됩니다. rect.contains()와 같은 다양한 메소드를 사용하여 동일한 로직을 적용 할 수 있습니다. 직사각형의 높이를 x, y 위치와 비교하여 오프셋을 적용하여 규칙을 직접 작성하고 이전 직사각형과 동일한 세로/가로 정렬에 놓았는지 확인하여 규칙을 작성할 수도 있습니다. – user3437460

+0

더 자세히 말하면, 직사각형에 "감도"와 같은 속성을 설정할 수도 있습니다. 예를 들어 떨어 뜨린 다른 사각형에서 3 픽셀 떨어져 있으면 자동으로 맞 춥니 다. 그렇지 않은 경우 (잘못된 위치에 있음), 그대로있는 위치에 두십시오. – user3437460