2012-05-02 3 views

答えて

4

はい。 JEditorPaneは(簡単な)HTMLを表示できます。詳細はJEditorPane tutorialを参照してください。

+0

JEditorPaneはHTMLボディの背景色を表示できますか? – mani

+2

あなたはそれを試して何が起こったのですか? –

+0

HTMLコードの背景色は表示されません。 – mani

2

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

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(); 
      } 
     }); 
    } 
} 
2

Web page with background color

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

これらのいずれかの中でHTMLを使用するには、テキストの先頭に ""タグを追加するだけで、HTMLが内部にあることをビューパーサーに知らせるだけです。

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

そしてもう一つ - あなたがHTMLの内部にいくつかの局所的な画像を表示したい場合は、それが適切にロードできるように、コンポーネントのベースの場所を変更する必要があります:いくつかの適切なURLがその下にあるべき

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

キー(ローカルまたはリモート)。

関連する問題