2011-10-07 5 views
1

스윙/AWT에 page turn effect을 구현하고 싶습니다. 이론은 꽤 많이 설명되어 있습니다 here. 내 질문은 그 페이지가 올바른 스윙/awt 구성 요소를 사용하는 텍스트를 포함하기 때문에? 또한 조금 더 깊게하려면이 문제에 어떻게 접근해야합니까? 내 말은 내가 전에 사용했던 도구를 알고 있지만 Swing/AWT에서는 이런 짓을 한적이 없다. Swing/AWT의 모든 세부 사항을 마스터해야 할 필요가있다. 이?자바 스윙/AWT의 페이지 전환 효과

+3

일부 대답;) –

+1

이 스택 오버플로 질문과 대답은 프로세스를 설명합니다. http://stackoverflow.com/questions/5660942/flip-book-in-java-swing –

답변

1

무엇을 하든지 직접 루틴을 구현해야합니다. 그릴 텍스트는 다른 구성 요소로 그려지는 텍스트의 대부분의 특성을 공유하지 않으므로 (시간이 지남에 따라 회전하고 페이지의 움직이는 가시적 인 "가장자리"에서 잘릴 것입니다), 또한 텍스트를 그린다.

SWING 및 모든 비 콘솔 프로그램에서 텍스트는 그래픽 프리미티브와 마찬가지로 화면에 그려집니다. 그것은 약간의 학습이 필요합니다. 특히 줄 간격, 글자 간격, 단어 줄 바꿈 등의 세부 사항에 대해서.

즉, 새로운 스윙 UI 구성 요소를 고려해야합니다. Here's how to write custom painting for one. 세부 사항에 따라 모델을 다시 사용할 수 있습니다. 일반적으로 뷰와 모델을 동시에 작성하는 것보다보기를 작성하는 것이 더 쉽습니다. 그러나 뷰의 요구 사항과 기존 모델의 적합성을 조화시켜야합니다.

기존 모델을 선택하면 문서 인터페이스에서보기를 코딩해야합니다. JTextPane 또는 JTextArea보기 구성 요소에서 우위를 차지할 수 있으며 텍스트에 "스타일을 추가"할 수 있는지 여부를 결정할 수 있습니다.

뷰는 실제로 잘 구조화 된 Swing 구성 요소에서 페인팅을 수행하지 않는다는 것을 잊지 마십시오. 그렇다면 플랫폼의 테마를 따르기 위해 스키닝을 할 수 없습니다. 즉, Swing 뷰 (일반적으로 JPagedBook과 같은 이름 패턴)를 제공하는 동안 해당 뷰는 뷰의 실제 드로잉을 수행하는 UIDelegate에 결합되어야합니다. 이것은 각각의 UIDelegate가 플랫폼의 룩 앤드 필 (look-and-feel)과 일치하는 방식으로 뷰를 렌더링 (draw)하는 방법을 포함하는 각각의 뷰에 대해 다중 UIDelegate를 허용합니다.

가장 큰 문제는 일반적으로 적절한 모양과 느낌을 적절히 지원하고 적절한 UIDelegate 등록에 대한 지식이 부족한 추가 작업 (보기가 그리면 그릴 수있는 항목을 찾습니다)입니다. Swing의 나머지 부분처럼 작동하도록 추가 GUI 컴포넌트 프로그래밍이 새로 추가 된 경우 2 ~ 3 일 정도 소요됩니다. 결국에는 라이브러리의 "분리 된"부분처럼 느껴지지 않는 구성 요소를 갖게됩니다.