2016-05-19 13 views
1

私が取り組んでいるこのノートブッククラスがあります。JTextAreaでハイライトを使用する方法

1:私は、私が今直面しています二つの問題持って大胆に、私はあなたがそれをクリックすると、テキストが太字や斜体にする私のツールバーにある2つのアイコンがあり、特定のテキスト

を斜体。しかし、それはすべて正常に動作しますが、テキストを選択するのではなく、文書内のすべてのテキストを常に選択します。特定のテキストを太字または斜体にするために、マウスの左クリックの青いハイライトを使用する方法はありますか?これは、抽象抽象アクションのコードです。イタリック体は、イタリック体を除いてまったく同じように見えます。テキスト

オーバー

Action Bold = new AbstractAction("Bold", new ImageIcon("bold.png")) 
{ 
    public void actionPerformed(ActionEvent e) 
    { 
     if(bolded == false) 
     { 
      area.setFont(area.getFont().deriveFont(Font.BOLD)); 
      bolded = true; 
     } 
     else 
     { 
      area.setFont(area.getFont().deriveFont(Font.PLAIN)); 
      bolded = false; 
     } 

    } 
}; 

2蛍光ペンは、私はちょうど、ユーザーが黄色選択した単語の特定のグループをペイントします実際の蛍光ペンを追加します。私はこれについてOracleのページを読んできましたが、私はまだそれを使用することについて確かにすべてではありません。特定の単語を検索し、そのように強調する人々の例がたくさんありますが、これらの特定の単語を強調することはありません。どのテキストをハイライト表示するかは、ユーザーが決定します。

Action Highlight = new AbstractAction("Highlight", new ImageIcon("highlighter.png")) 
{ 
    public void actionPerformed(ActionEvent e) throws BadLocationException 
    { 
     Highlighter highlighter = area.getHighlighter(); 
     HighlightPainter painter = new DefaultHighlighter.DefaultHighlightPainter(Color.RED); 
     highlighter.addHighlight(0 , 6, painter); 
    } 
}; 

上記のコードは、私はそれが抽象アクション内にある場合ただし、場合BadLocationExceptionは右コンパイルされません、オンラインいくつかの他のチュートリアルから一緒に引っ張って管理するものであるので、これは現実的な選択肢のように見ていません。

ご協力いただきましてありがとうございます。

+1

、フォントを変更すると、テキスト全体に影響します。テキスト・コンポーネントについてのこのチュートリアルを参照して、関連性の高いものを選択してください。http://docs.oracle.com/javase/tutorial/uiswing/components/text.html – Berger

答えて

1

actionPerformedは、チェックされた例外をスローしません。 例外を削除してメソッド内にキャッチするだけです。 `JTextArea`で

public void actionPerformed(ActionEvent e) 
{ 
    try { 
    Highlighter highlighter = area.getHighlighter(); 
    HighlightPainter painter = new DefaultHighlighter.DefaultHighlightPainter(Color.RED); 
    highlighter.addHighlight(0 , 6, painter); 
    catch(throws BadLocationException ex) { 
    ex.printStackTrace(); 
    } 
} 

}

関連する問題