drawString 관련 Swing HTML 문제: HTML 형식 렌더링
질문:
시도 중 Graphics 클래스의 drawString 메서드를 사용하여 사용자 정의 구성 요소 내에 HTML 텍스트를 그리려면 HTML 형식이 그대로 유지됩니다. 인식할 수 없습니다. 대신 특별한 처리 없이 문자열이 표시됩니다.
답변:
drawString 메소드는 일반 문자열을 그리는 데 일반적으로 사용되지만 본질적으로 HTML 형식을 지원하지는 않습니다. . Swing 구성 요소에서 HTML 콘텐츠를 효과적으로 렌더링하려면 대체 접근 방식이 권장됩니다.
HTML 렌더링을 위한 구성 요소 사용:
선호되는 솔루션은 다음을 제공하는 사용자 정의 구성 요소를 생성하는 것입니다. HTML 렌더링의 구체적인 목적. 이를 통해 구성 요소 내에서 HTML이 해석되고 표시되는 방식을 더 효과적으로 제어할 수 있습니다.
예를 들어, 아래 코드 조각은 렌더러 구성 요소를 사용하여 JPanel 내에 HTML 텍스트를 표시하는 단순화된 구현을 간략하게 설명합니다.
import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import javax.swing.CellRendererPane; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class HtmlRenderer extends JPanel { private static final String HTML_STRING = "<html><b><i>Hello World!</i></b></html>"; private JLabel renderer = new JLabel(HTML_STRING); private CellRendererPane crp = new CellRendererPane(); private Dimension dim; public HtmlRenderer() { dim = renderer.getPreferredSize(); this.add(crp); } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); renderer.setForeground(Color.BLUE); crp.paintComponent(g, renderer, this, 0, 0, dim.width, dim.height); } private void display() { JFrame frame = new JFrame("HTML Renderer"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(this); frame.pack(); frame.setSize(dim.width + 20, dim.height + 20); frame.setLocationRelativeTo(null); frame.setVisible(true); } public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { @Override public void run() { HtmlRenderer renderer = new HtmlRenderer(); renderer.display(); } }); } }
위 내용은 Swing에서 drawString을 사용하여 HTML 텍스트를 표시하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!