概要

JTextAreaなどのCaretを非表示にするテストを行います。

サンプルコード

textArea.setCaret(new DefaultCaret() {
  @Override public boolean isVisible() {
    return false;
  }
});
View in GitHub: Java, Kotlin

解説

  • Hide Caret
    • DefaultCaret#isVisible()が常にfalseを返すようにオーバーライドしたCaretJTextAreaに設定することで非表示にする
    • 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も選択ハイライトも非表示になる

コメント