Swing/CaretWidth のバックアップ(No.9)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/CaretWidth へ行く。
- category: swing folder: CaretWidth title: JTextComponentで使用されるCaretの幅を変更する tags: [Caret, JTextComponent] author: aterai pubdate: 2020-07-06T02:13:21+09:00 description: JTextFieldやJTextAreaなどのJTextComponentで使用されるCaretの幅を変更します。 image: https://drive.google.com/uc?id=1yXj9mvzo3Ary_OohlWvmmV2DQXZiSG1O
Summary
JTextFieldやJTextAreaなどのJTextComponentで使用されるCaretの幅を変更します。
Screenshot

Advertisement
Source Code Examples
UIManager.put("Caret.width", 2);
JTextField field1 = new JTextField("Caret.width: 2");
JTextField field2 = new JTextField("caretWidth: 4");
field2.putClientProperty("caretWidth", 4);
JTextField field3 = new JTextField("caretAspectRatio: 0.4");
field3.putClientProperty("caretAspectRatio", .4f);
View in GitHub: Java, KotlinExplanation
Caret.widthUIManager.put("Caret.width", 2)ですべてのJTextComponentでCaretの幅を変更
caretWidthJComponent#putClientProperty("caretWidth", 4)で指定したコンポーネントのCaretの幅を変更
caretAspectRatioJComponent#putClientProperty("caretAspectRatio", .4f)で指定したコンポーネントのCaretの幅を高さとの比率で変更
Caret幅のデフォルトは1pxWindowsLookAndFeelでのCaret幅のデフォルトはコントロールパネルで指定した幅になる- [JDK-6994562] Swing classes (both JTextArea and JTextField) don't support caret width tuning - Java Bug System
Caretの幅に負の値を設定した場合1pxに初期化されるCaretの幅を0pxに設定するとCaretが非表示になる
Reference
- [JDK-6994562] Swing classes (both JTextArea and JTextField) don't support caret width tuning - Java Bug System
- JTextAreaなどのCaretを非表示にする