web-dev-qa-db-ja.com

JTextAreaまたはJTextPaneでのテキストのスタイリング

基本的に、スタイルを設定したいテキストを保持するためのJTextPaneがあります。 JTextAreaを使用したほうがよかったのですが、これらのテキストのスタイルを設定できないと言われていますか?

ただし、JTextPaneは適切にスタイル設定されていないようです。たとえば、次のコードはHTMLを含めて返されます。

public static void main(String[] args) {
    JFrame j = new JFrame("Hello!");
    j.setSize(200,200);
    JTextPane k = new JTextPane();
    k.setText("<html><strong>Hey!</strong></html>");
    j.add(k);
    j.setVisible(true);
}

ユーザーがインターフェイスを操作するときにJTextPaneでテキストのスタイルを設定できるようにしたいのですが、これまでのところ、HTMLが残っている文字列を返すだけです。助けて!

14
mino

JTextPaneHtmlコンテンツを表示する場合は、 JTextPane#setContentType( "text/html"); 、例-に設定する必要があります。 ここ

編集:

JEditorPanes / JTextPanesの場合、実装による別の方法があります StyledDocumentMutableAttributeSet およびカスタマイズされた Highlighte r、例 here ==

午前の方法はHtml syntaxを使用しないことです

21
mKorbel

Java setContentType メソッドを使用してHTMLになることを知らせます。

k.setContentType("text/html"); 
6
RanRag

ルックアンドフィール(物質)を使用していますが、setContentType("text/html")を呼び出すと、表示されるフォントに問題があります。私はそれを呼び出すことによって解決しました:

textPane.putClientProperty(JTextPane.HONOR_DISPLAY_PROPERTIES, Boolean.TRUE);

もう1つのオプションは、HTMLテキストをJLabelでラップすることです。あなたの例に従うと、コードは次のとおりです。

JTextPane k = new JTextPane();
k.insertComponent(new JLabel("<html><strong>Hey!</strong></html>"));
3
IvanRF