Swing/HideCaret のバックアップの現在との差分(No.2)
- 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?export=view&id=1K6e6fysV1_WfG9uuYpD3nh1eKFVrGTfr6g image: https://drive.google.com/uc?id=1K6e6fysV1_WfG9uuYpD3nh1eKFVrGTfr6g
概要
JTextArea
などのCaret
を非表示にするテストを行います。
Screenshot
Advertisement
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
が発生する -
DefaultCaret#isVisible()
が常にfalse
を返すようにオーバーライドしたCaret
をJTextArea
に設定することで非表示化 -
JTextArea#setCaret(null)
のようにnull
を設定するとNullPointerException
が発生する -
textArea.getCaret().deinstall(textArea)
を実行するとカーソルキーの移動などでNullPointerException
が発生する
-
Hide Highlighter
-
JTextArea#setHighlighter(null)
のようにnull
を設定することで、選択ハイライトを非表示にする -
JTextArea#setHighlighter(null)
のようにnull
を設定して選択ハイライトを非表示にする
-
Editable
-
JTextArea#setEditable(false)
と設定すると、編集不可になり、選択は可能だがCaret
は非表示になる
-
-
Editable
-
JTextArea#setFocusable(false)
と設定すると、選択不可になり、結果Caret
も選択ハイライトも非表示になる -
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