Swing/HideCaret のバックアップ(No.5)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/HideCaret へ行く。
- category: swing folder: HideCaret title: JTextAreaなどのCaretを非表示にする tags: [JTextArea, JTextComponent, DefaultCaret, Focus] author: aterai pubdate: 2017-01-02T02:13:16+09:00 description: JTextAreaなどのCaretを非表示にするテストを行います。 image: https://drive.google.com/uc?id=1K6e6fysV1_WfG9uuYpD3nh1eKFVrGTfr6g
概要
JTextArea
などのCaret
を非表示にするテストを行います。
Screenshot
Advertisement
サンプルコード
textArea.setCaret(new DefaultCaret() {
@Override public boolean isVisible() {
return false;
}
});
View in GitHub: Java, Kotlin解説
Hide Caret
DefaultCaret#isVisible()
が常にfalse
を返すようにオーバーライドしたCaret
をJTextArea
に設定することで非表示にするJTextArea#setCaret(null)
のようにnull
を設定すると、NullPointerException
が発生するtextArea.getCaret().deinstall(textArea)
を実行すると、カーソルキーの移動などでNullPointerException
が発生する
Hide Highlighter
JTextArea#setHighlighter(null)
のようにnull
を設定することで、選択ハイライトを非表示にする
Editable
JTextArea#setEditable(false)
を設定すると編集不可になり、選択は可能だがCaret
は非表示になる
Editable
JTextArea#setFocusable(false)
を設定すると選択不可になり、結果Caret
も選択ハイライトも非表示になる