JTextComponentで使用されるCaretの幅を変更する
Total: 1640
, Today: 3
, Yesterday: 2
Posted by aterai at
Last-modified:
概要
JTextField
やJTextArea
などのJTextComponent
で使用されるCaret
の幅を変更します。
Screenshot
Advertisement
サンプルコード
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, Kotlin解説
Caret.width
UIManager.put("Caret.width", 2)
ですべてのJTextComponent
でCaret
の幅を変更
caretWidth
JComponent#putClientProperty("caretWidth", 4)
で指定したコンポーネントのCaret
の幅を変更
caretAspectRatio
JComponent#putClientProperty("caretAspectRatio", .4f)
で指定したコンポーネントのCaret
の幅を高さとの比率で変更
Caret
幅のデフォルトは1px
WindowsLookAndFeel
でのCaret
幅のデフォルトはコントロールパネルで指定した幅になる- [JDK-6994562] Swing classes (both JTextArea and JTextField) don't support caret width tuning - Java Bug System
Caret
の幅に負の値を設定した場合1px
に初期化されるCaret
の幅を0px
に設定するとCaret
が非表示になる
参考リンク
- [JDK-6994562] Swing classes (both JTextArea and JTextField) don't support caret width tuning - Java Bug System
- JTextAreaなどのCaretを非表示にする