JTextAreaインスタンスで選択したテキストに太字のフォントスタイルを設定する方法

エサン

JTextAreaインスタンスで選択したテキストに太字のフォントスタイルを設定したい。

私はこの方法を試しました:

textArea.getSelectedText().setFont(new Font("sansserif",Font.BOLD, 12));

しかし、それは機能しません。また、私は試しましたがJTextPaneJEditorPane代わりにJTextArea効果がありませんでした。

どうやってやるの?

ギルバート・ル・ブラン

テキストの一部またはすべてが選択されたときにリッスンするように、JTextPaneにキャレットリスナーを設定する必要があります。

これが私が作成したGUIです。

JTextPane

そしてここにコードがあります:

package com.ggl.testing;

import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.swing.SwingUtilities;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;
import javax.swing.text.BadLocationException;
import javax.swing.text.DefaultStyledDocument;
import javax.swing.text.Style;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyleContext;
import javax.swing.text.StyledDocument;

public class JTextPaneTest implements Runnable {

    private JTextPane textPane;

    private StyledDocument styledDocument;

    public static void main(String[] args) throws BadLocationException {
        SwingUtilities.invokeLater(new JTextPaneTest());
    }

    public JTextPaneTest() throws BadLocationException {
        this.styledDocument = new DefaultStyledDocument();
        this.styledDocument.insertString(0, displayText(), null);
        addStylesToDocument(styledDocument);
    }

    @Override
    public void run() {
        JFrame frame = new JFrame("JTextPane Test");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLocationByPlatform(true);

        textPane = new JTextPane(styledDocument);
        textPane.addCaretListener(new SelectedText());
        textPane.setPreferredSize(new Dimension(250, 125));
        JScrollPane scrollPane = new JScrollPane(textPane);

        frame.add(scrollPane);
        frame.pack();
        frame.setVisible(true);
    }

    private String displayText() {
        return "This is some sample text.  Pick part of the text to select "
                + "by double clicking on a word.";
    }

    private void addStylesToDocument(StyledDocument styledDocument) {
        Style def = StyleContext.getDefaultStyleContext().getStyle(
                StyleContext.DEFAULT_STYLE);
        Style s = styledDocument.addStyle("bold", def);
        StyleConstants.setBold(s, true);
    }

    private class SelectedText implements CaretListener {

        @Override
        public void caretUpdate(CaretEvent event) {
            int dot = event.getDot();
            int mark = event.getMark();
            if (dot != mark) {
                if (dot < mark) {
                    int temp = dot;
                    dot = mark;
                    mark = temp;
                }
                boldSelectedText(mark, dot);
            }
        }

        private void boldSelectedText(int mark, int dot) {
            try {
                int length = dot - mark;
                String s = styledDocument.getText(mark, length);
                styledDocument.remove(mark, length);
                styledDocument.insertString(mark, s,
                        styledDocument.getStyle("bold"));
            } catch (BadLocationException e) {
                e.printStackTrace();
            }
        }

    }

}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Plotlyで太字のフォントスタイルを設定する方法

分類Dev

カスタム フォントを使用してテキスト ビューで太字と斜体のスタイルを設定する (プログラムで)

分類Dev

CListCtrlはフォントスタイルを太字に設定します

分類Dev

テキストを太字にするスタイルのCSS異なるフォント

分類Dev

カスタムフォントと太さ(スタイル)をUInavigationbarタイトルに設定する方法

分類Dev

ggsave()はテキストを太字にせず、タイトルだけでなくすべてのテキストのフォントを変更します

分類Dev

jtextareaのフォント名、スタイル、サイズを設定する

分類Dev

ITextを使用してテキストの人工的な太字スタイルと人工的なアウトラインスタイルを決定する方法

分類Dev

入力送信ボタンのテキストを太字でスタイル設定できませんか?

分類Dev

エンティティタイプフィールドを持つリストにデフォルトの選択値を設定する方法

分類Dev

CSSを使用したHTML:テーブルのフォントのスタイルを設定する方法は?

分類Dev

Laravel:デフォルトオプションを設定するときにフォーム選択がスタイル/クラスで機能しない

分類Dev

RadCalendar DayCellでイベントテキストのフォントサイズをスタイル設定する方法

分類Dev

カスタムフォントに太字、通常、斜体のフォントスタイルを使用するにはどうすればよいですか?

分類Dev

送信ボタンのテキストのスタイルを設定する方法

分類Dev

TinyMCE:太字を選択する場合、通常の太字スタイルを適用する代わりに別のフォントを使用するにはどうすればよいですか?

分類Dev

Java SWINGでカスタムフォントのサイズとその他の属性(太字、斜体など)を設定する方法

分類Dev

メインアクティビティのボタンをクリックしたときに選択したスピナーオプションのテキストに基づいて、別のアクティビティでタイトルを設定する方法

分類Dev

選択ドロップダウンでデフォルトのテキストを自動的に設定する

分類Dev

デフォルトのシステムを取得するために、lubuntuの代替インストール中にtaskselで選択するタスク

分類Dev

Bootstrapでテキストラベルを通常のフォント(太字ではない)にする方法は?

分類Dev

ダイアログボタンのテキストのフォントサイズを設定する方法

分類Dev

TextViewのテキストに複数のスパンを設定する方法(クリック可能で太字)

分類Dev

デフォルトのテンプレートパラメータとして、他のパラメータに応じてネストされたテンプレートクラスのインスタンス化を設定する方法

分類Dev

ボタンクリックでテキストフィールドの選択されたテキストを取得する方法は?pickerviewは、テキストフィールドへの入力ビューとして設定されます。迅速

分類Dev

QComboBoxまたはQListWidgetで選択した要素のテキストのスタイルを設定しますか?

分類Dev

C#でシリアル化を使用せずにフォームを再度開いたときに、選択したコンボボックスアイテムとボタンのテキストを取得する方法

分類Dev

選択が行われたときにテキストとアウトラインを太字で表示するようにQuasarのQSelectをカスタマイズするにはどうすればよいですか?

分類Dev

ラジオボタンを選択してテキストを太字にする

Related 関連記事

  1. 1

    Plotlyで太字のフォントスタイルを設定する方法

  2. 2

    カスタム フォントを使用してテキスト ビューで太字と斜体のスタイルを設定する (プログラムで)

  3. 3

    CListCtrlはフォントスタイルを太字に設定します

  4. 4

    テキストを太字にするスタイルのCSS異なるフォント

  5. 5

    カスタムフォントと太さ(スタイル)をUInavigationbarタイトルに設定する方法

  6. 6

    ggsave()はテキストを太字にせず、タイトルだけでなくすべてのテキストのフォントを変更します

  7. 7

    jtextareaのフォント名、スタイル、サイズを設定する

  8. 8

    ITextを使用してテキストの人工的な太字スタイルと人工的なアウトラインスタイルを決定する方法

  9. 9

    入力送信ボタンのテキストを太字でスタイル設定できませんか?

  10. 10

    エンティティタイプフィールドを持つリストにデフォルトの選択値を設定する方法

  11. 11

    CSSを使用したHTML:テーブルのフォントのスタイルを設定する方法は?

  12. 12

    Laravel:デフォルトオプションを設定するときにフォーム選択がスタイル/クラスで機能しない

  13. 13

    RadCalendar DayCellでイベントテキストのフォントサイズをスタイル設定する方法

  14. 14

    カスタムフォントに太字、通常、斜体のフォントスタイルを使用するにはどうすればよいですか?

  15. 15

    送信ボタンのテキストのスタイルを設定する方法

  16. 16

    TinyMCE:太字を選択する場合、通常の太字スタイルを適用する代わりに別のフォントを使用するにはどうすればよいですか?

  17. 17

    Java SWINGでカスタムフォントのサイズとその他の属性(太字、斜体など)を設定する方法

  18. 18

    メインアクティビティのボタンをクリックしたときに選択したスピナーオプションのテキストに基づいて、別のアクティビティでタイトルを設定する方法

  19. 19

    選択ドロップダウンでデフォルトのテキストを自動的に設定する

  20. 20

    デフォルトのシステムを取得するために、lubuntuの代替インストール中にtaskselで選択するタスク

  21. 21

    Bootstrapでテキストラベルを通常のフォント(太字ではない)にする方法は?

  22. 22

    ダイアログボタンのテキストのフォントサイズを設定する方法

  23. 23

    TextViewのテキストに複数のスパンを設定する方法(クリック可能で太字)

  24. 24

    デフォルトのテンプレートパラメータとして、他のパラメータに応じてネストされたテンプレートクラスのインスタンス化を設定する方法

  25. 25

    ボタンクリックでテキストフィールドの選択されたテキストを取得する方法は?pickerviewは、テキストフィールドへの入力ビューとして設定されます。迅速

  26. 26

    QComboBoxまたはQListWidgetで選択した要素のテキストのスタイルを設定しますか?

  27. 27

    C#でシリアル化を使用せずにフォームを再度開いたときに、選択したコンボボックスアイテムとボタンのテキストを取得する方法

  28. 28

    選択が行われたときにテキストとアウトラインを太字で表示するようにQuasarのQSelectをカスタマイズするにはどうすればよいですか?

  29. 29

    ラジオボタンを選択してテキストを太字にする

ホットタグ

アーカイブ