사용자 정의 스윙 구성 요소를 만들고 있는데 문제가 발생했습니다. 시간이 지남에 따라 색상이 바뀌는 간단한 텍스트 디스플레이 (예 : jlabel)가 필요합니다. 현재 JPanel과 재정의 된 paintComponent (Graphics)를 확장하여 주어진 텍스트를 그릴 수 있고 필요에 따라 색상을 순환시킬 수있는 구성 요소를 만들 수 있습니다. 그러나 구성 요소의 가운데에 항상 텍스트를 그리는 방법이나 텍스트의 정확한 크기를 모르는 상태에서 기본 기본 크기를 계산하는 방법을 모르겠습니다. 텍스트가 설정된 JLabel은 getPreferredSize에 적합한 값을 자동으로 반환하며 텍스트는 항상 라벨에 깔끔하게 맞춰집니다. 이것은 내가 모방하려고하는 기능입니다. 아무도 이것을 달성하는 방법을 알고 있습니까?Java 텍스트 구성 요소가 자체 선호 크기를 계산합니다.
0
A
답변
4
FontMetrics 클래스는 특정 글꼴로 렌더링 된 텍스트의 모양을 결정하는 데 사용됩니다. 이렇게하면 텍스트를 렌더링하는 데 필요한 공간을 알 수 있습니다.
getLineMetrics
방법을보십시오.
+0
그게 정확히 내가 필요로하는 것입니다. – James
관련 문제
- 1. SWT : 컨트롤의 기본 (선호) 크기를 얻는 방법
- 2. Java swing 구성 요소가 고정되었습니다.
- 3. PowerPoint 슬라이드 복사 Java (선호)
- 4. Java-Swing 및 Windows 텍스트 크기 : 구성 요소 크기를 수정하십시오.
- 5. 최대화 구성 요소가 너무
- 6. Java - GroupLayout의 구성 요소 크기를 조정하는 방법
- 7. bxslider가로드시 잘못된 뷰포트 크기를 계산합니다.
- 8. Java EE 서버 구성 요소가 컴파일 되었습니까?
- 9. Java Paint 구성 요소가 작동하지 않습니다.
- 10. Java - GUI 구성 요소가 표시되지 않습니다.
- 11. SWT 텍스트 구성 요소가 가로로 채워지지 않습니다.
- 12. 구성 요소가 창에 나타나지 않습니다.
- 13. Flash 구성 요소가 자체 사용 횟수를 확인할 수 있습니까?
- 14. 브라우저 크기를 조정하면 모듈의 구성 요소가 사라집니다 (Flex 3)
- 15. 구성 요소가 매우 큰 2 벡터의 크기를 어떻게 계산합니까?
- 16. 문서 템플릿에서 작동 할 수있는 (선호 무료) PDF/Word 생성기 .Net 구성 요소가 필요합니다.
- 17. 포인터로 주어진 c의 배열 크기를 계산합니다.
- 18. PHP로 이미지 크기를 인치 또는 dpi로 계산합니다.
- 19. imagepickerdidFinishPickingMediaWithInfo에있는 비디오의 크기를 바이트 단위로 계산합니다.
- 20. 줌 레벨 n에서 Google지도의 타일 크기를 계산합니다.
- 21. 구성 요소가 serialize되지 않습니다.
- 22. 구성 요소가 삭제되지 않습니다
- 23. Java 재사용 구성 요소 크기를 설정할 때 차원 개체
- 24. 선호/최대/최소 크기가없는 텍스트 래핑 JLabels
- 25. QWizardPages는 자체 최소 크기를 유지합니다.
- 26. TFrame의 구성 요소가 자체 이벤트 핸들러를 갖도록 강제로 어떻게 구성 할 수 있습니까?
- 27. Java 용 서식있는 텍스트 표시 구성 요소
- 28. Java, C, Python 등의 자체 구성 퍼지 신경망 (SOFNN) 구현
- 29. Java/Swing을위한 훌륭한 "큐브 그리드"구성 요소가 있습니까?
- 30. Java GUI 구성 요소가 다른 것이 보이지 않는데 왜 이동합니까?
단순히 JLabel을 사용하지 않는 이유는 무엇입니까? 실제로이 작업을 수행하는 경우 swingComponent에서 전경색을 변경하기 만하면 paintComponent를 재정의 할 필요가 없습니다 (또는 JLabel을 확장 할 수도 있습니다). –
이것은 학습 연습이며 결과보다는 개념에 더 관심이 있습니다. 그렇지 않다면 그것은 내가 어떻게했을지 거의 알지 못합니다.) – James
그러면 원래의 질문에 언급되어 있었을 것입니다. 우리는 불완전한 질문에 대답하기 위해 시간을 낭비 할 필요가 없었습니다. 명시된 질문에 대한 정답은 단순히 JLabel을 사용하는 것입니다. 그렇지 않으면 z5h의 글에서 지적한대로 FontMetrics를 사용해야 할 것입니다 (그에게 1+). –