나는 정말 열심히 노력했습니다. 패널의 크기를 AttributedString 너비에 맞게 조정해야했습니다.
double GetWidthOfAttributedString(Graphics2D graphics2D, AttributedString attributedString) {
AttributedCharacterIterator characterIterator = attributedString.getIterator();
FontRenderContext fontRenderContext = graphics2D.getFontRenderContext();
LineBreakMeasurer lbm = new LineBreakMeasurer(characterIterator, fontRenderContext);
TextLayout textLayout = lbm.nextLayout(Integer.MAX_VALUE);
return textLayout.getBounds().getWidth();
}
그것은 문자열에 대한 TextLayout의를 찾기 위해 LineBreakMeasurer에를 사용하고 단순히 TextLayout의의와를 확인 : 내 솔루션입니다. 줄 바꿈 폭은 Integer.MAX_VALUE로 설정되므로 텍스트 너비보다 큰 텍스트는 잘립니다.
나는 정말로해야 할 일은 AttributedString을 줄 바꿈한다는 것이다. LineBreakMeasurer를 사용하면 훨씬 쉬울 것입니다. J2ME PBP에도없는 것입니다. :-( –
Canvas 또는 LCD UI (Form, Alert, List ...) 사용자 인터페이스를 표시하기 위해 구성 요소가 사용하는 요소 더 잘 이해할 수 있도록 그림을 첨부 할 수 있습니까? –