1

HTMLからなるJavaコードを書いています。その HTML コードのみをプレビューしたいJFrame。Java API 内で利用できるソリューションはありますか?

この問題を解決する方法を教えてください。

4

3 に答える 3

4

はい。はJEditorPane(単純な) HTML を表示できます。詳細については、このJEditorPaneチュートリアルを参照してください。

于 2012-05-02T11:27:30.760 に答える
2

実際、カスタム ユーザー テキストをどこかに表示できるほとんどすべての Swing コンポーネントでは、テキストの代わりに HTML を使用できます。たとえば、JButton テキスト、JTabbedPane タブ タイトル、JTable セル/ヘッダー、JLabel テキスト、JList/JTree/JComboBox セル レンダラー、コンポーネント ツールチップなどです。

それらの内部で HTML を使用するには (テキストの最初にタグを追加するだけ<html>です)、ビュー パーサーに内部に HTML があることを知らせるのに十分です。

また、Java でサポートされている HTML はかなり古く、新しい機能のほとんどは最新のブラウザーやビジュアル エディターで見られるように機能しません。しかし、必要に応じていくつかの高度なコンポーネント コンテンツを作成するには、それでも十分です。

もう 1 つ - HTML 内にいくつかのローカル画像を表示したい場合は、適切にロードできるようにコンポーネントのベース位置を変更する必要があります。

component.putClientProperty (
    BasicHTML.documentBaseKey, 
    new File ( "/local/path/" ).toURI ().toURL () 
);

適切な URL がそのキー (ローカルまたはリモート) の下にある必要があります。

于 2012-05-02T12:23:43.047 に答える
2

JEditorPaneは、 HTML 3.2要素のサブセットと単純なスタイル (CSS) をサポートしています。このタスクは CSS を使用して実現できますが、HTML 3.2 の body 要素はbgcolor.

背景色のある Web ページ

import java.awt.Dimension;
import javax.swing.*;

class WebPageWithBackground {
    WebPageWithBackground() {
        String html = "<html><body bgcolor='#ffbb99'>Hi!";
        JEditorPane jep = new JEditorPane();
        jep.setContentType("text/html");
        jep.setText(html);
        jep.setPreferredSize(new Dimension(400,50));
        JOptionPane.showMessageDialog(null, jep);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new WebPageWithBackground();
            }
        });
    }
}
于 2012-05-02T11:49:32.850 に答える