2016-12-02 1 views
0

私はSwingを使ってJavaでテキストエディタを書いています。私がテキストを入力するために使用する主なコンポーネントはJTextPaneです。私は選択されたテキストを太字にする方法を知っていますが、太字を押して新しいテキストをフォーマットしたいだけです。ここに私のコードは次のとおりです。Swingを使ってJavaで太字で書く

static void boldSelection(JTextPane editor, JButton button){ 
    StyledDocument doc = (StyledDocument) editor.getDocument(); 
    int selectionEnd = editor.getSelectionEnd(); 
    int selectionStart = editor.getSelectionStart(); 
    if (selectionStart == selectionEnd) { 
     return; 
    } 
    Element element = doc.getCharacterElement(selectionStart); 
    AttributeSet as = element.getAttributes(); 

    MutableAttributeSet asNew = new SimpleAttributeSet(as.copyAttributes()); 
    StyleConstants.setBold(asNew, !StyleConstants.isBold(as)); 
    doc.setCharacterAttributes(selectionStart, editor.getSelectedText().length(), asNew, true); 
} 

それは動作しますが、私はsetCharacterAttributesに長さを渡すために持っているので、私は、それを変更する方法は考えています。それは私が持っているものだ : は、明確にするために、 Bolding selected text 、それは私が何をしたいです:JTextPaneインクルードは、エディタによって使用される可能性のある他の一般的なアクションと一緒に大胆Actionをサポートしていますが使用し Entering bolded text

+0

すぐに役立つようにするには、[MCVE]または[短く、自己完結型の正しい例](http://www.sscce.org/)を投稿してください。 –

+0

あなたはあなたが "太字"の状態にあるかどうかをチェックし、それが入力された文字に適用されるアクションリスナーを探しているでしょう – Rogue

答えて

2

EditorKit 。したがって、特別なコードを記述する必要はなく、Actionを使用するSwingコンポーネントのみを作成します。

動作例については、Text Component FeaturesのSwingチュートリアルのセクションを参照してください。

チュートリアルの例ではメニュー項目のみを使用しますが、Actionを使用してJButtonを作成してJToolBarに追加することもできます。

+0

これはまさに私が探していたものです。ありがとう。 – Enri

関連する問題