2011-12-14 9 views
1

JTextPane全体の色を変更せずに、JTextPaneでテキストの色を変更しようとしています。 私はこれを行うことを可能にするクラスをオンラインで見つけましたが、提供したメソッドを実行するために "ColorPane"オブジェクトを作成しようとしたときに、コードはコンパイルされましたが、単に機能しませんでした。私のラップトップはちょうど典型的な "Windows no-no sound"を演奏しました。 私は今、私が必要とするメソッドを追加しようとしていますが、いくつかの型不一致エラーが発生しています。ここでJTextPaneの代替テキストの色

はColorPaneクラスです: http://pastebin.com/jWtQK0Va

ありがとう:(私はテーブルを作成する方法を取った) http://www.java2s.com/Code/Java/Swing-JFC/ExtensionofJTextPanethatallowstheusertoeasilyappendcoloredtexttothedocument.htm

ここで型の不一致エラーが発生している方法です!

答えて

1

あなたの問題を見ると、JTextPaneの中に複数の色が必要だったようです。 このメソッドをコードに配置し、必要に応じて引数を指定するだけです。

public void appendToPane(String yourText, Color colour) 
    { 
     StyleContext sc = StyleContext.getDefaultStyleContext(); 
     AttributeSet aset = sc.addAttribute(SimpleAttributeSet.EMPTY, StyleConstants.Foreground, colour); 
     aset = sc.addAttribute(aset, StyleConstants.FontFamily, "Lucida Console"); 

     int len = tPane.getDocument().getLength(); 
     tPane.setCaretPosition(len); 
     tPane.setCharacterAttributes(aset, false); 
     tPane.replaceSelection(yourText); 
    } 

上記方法は、以下の輸入使用:

  • インポートjavax.swing.text.AttributeSetと、
  • import javax.swing.text.SimpleAttributeSet;
  • import javax.swing.text.StyleConstants;
  • import javax.swing.text.StyleContext;
  • import javax.swing.JTextPane;

そして、tPaneはJTextPaneのObjectです。あなたの名前が青色で表示されるようにするには、メソッドをappendToPane( "Your Name"、Color.BLUE)として呼び出します。他のテキストを赤色で表示したい場合は、appendToPane( "New Text"、Color.RED);メソッドをもう一度呼び出すと、要求したクエリが解決されます。

よろしくお願いいたします。

+0

ありがとうございます!マイナーなタイプミス:STyleConstantsはStyleConstantsでなければなりません – adhg

関連する問題