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 中国語 Web サイトの他の関連記事を参照してください。