JTextAreaなどのCaretを非表示にする
Total: 4325
, Today: 3
, Yesterday: 1
Posted by aterai at
Last-modified:
概要
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
は非表示になる- [JDK-4512626] Non-editable JTextArea provides no visual indication of keyboard focus - Java Bug Systemで編集不可でも
Caret
が非表示にならないよう修正される
Focusable
JTextArea#setFocusable(false)
を設定すると選択不可になり、結果Caret
も選択ハイライトも非表示になる
参考リンク
- DefaultCaret#isVisible() (Java Platform SE 8)
- [JDK-4512626] Non-editable JTextArea provides no visual indication of keyboard focus - Java Bug System