Java 1.4.2 Personal Basis Profile을 기반으로 Amazon Kindle KDK 용 사용자 정의 Java 구성 요소를 생성합니다. 구성 요소에는 필요한 경우 여러 행으로 리플 로우되는 텍스트가 포함됩니다. 정확하게 텍스트가 포함될 getMinimumSize()
, getPreferredSize()
및 getMaximumSize()
메서드를 사용하여 크기를 요청하고 싶습니다. 레이아웃 중에 컴포넌트가 얼마나 많은 너비를 가지는지에 따라 필요한 정확한 높이를 요청해야합니다.적절한 높이를 요청하기 위해 Java 구성 요소가받을 최대 너비를 알려주는 방법은 무엇입니까?
예를 들어 구성 요소가 한 줄에 모든 텍스트를 포함 할만큼 충분한 너비를 수신하면 한 줄의 높이 만 요청합니다. 그러나 텍스트가 3 줄에 들어가기에 충분한 너비 만 받으면 3 줄의 텍스트를 허용하는 높이를 요청합니다.
레이아웃을 두 번 통과해야하는데, 첫 번째 줄은 텍스트를 한 줄에 맞추기 위해 필요한 너비입니다. 그런 다음 필요한 경우 여러 줄에 텍스트를 맞출 높이 높이를 요청할 수있는 너비의 양을받습니다. 적절한 폭의 Dimension
을 getMinimumSize()
, getPreferredSize()
및 getMaximumSize()
에 반환하기 위해이 폭이 무엇인지 알아내는 가장 좋은 방법은 무엇입니까?
편집 : 명확히하기 위해 기꺼이 JTextArea
을 사용하지만 PBP에는 스윙 및 제한된 AWT 구성 요소가 없습니다. Kindle KDK에는 KTextArea 및 KLabelMultiline을 비롯한 몇 가지 기본 구성 요소가 있습니다. 문제는 모두 매우 버그가 있으며 유연한 레이아웃 상황에서 적절하게 자체 크기를 조정하지 않습니다. 고정 된 레이아웃에서는 모든 것이 고정 된 영역으로 사용됩니다. 그러나 접착제 요소 및 가변 크기를 가질 수있는 기타 텍스트 구성 요소가있는 레이아웃에 배치 할 때 맞춤 구성 요소를 사용하여 해결하려는 모든 텍스트를 표시하기 위해 확장되지 않습니다.
구성 요소가 완전히 초기화 될 때까지 대기하는 스윙 이벤트가 있어야합니다. 그러면 이벤트 처리기에서 현재 너비를 사용하여 높이를 설정할 수 있습니다. 그 이벤트의 이름이 무엇인지 모르겠습니다. –