JTextComponentで使用されるCaretの幅を変更する
Total: 2050, Today: 1, Yesterday: 0
Posted by aterai at
Last-modified:
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, KotlinDescription
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を非表示にする