SwingでdrawStringを使用してHTMLテキストを表示するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-14 20:03:02
オリジナル
231 人が閲覧しました

How to Display HTML Text using drawString in Swing?

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート