Swing/TextAttribute のバックアップ(No.4)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/TextAttribute へ行く。
- 1 (2013-10-28 (月) 00:39:37)
- 2 (2014-05-22 (木) 14:34:07)
- 3 (2014-09-17 (水) 02:12:32)
- 4 (2014-10-23 (木) 00:52:02)
- 5 (2015-11-15 (日) 03:02:53)
- 6 (2017-04-07 (金) 13:51:51)
- 7 (2017-04-28 (金) 16:51:15)
- 8 (2018-04-25 (水) 18:54:07)
- 9 (2018-11-16 (金) 18:32:38)
- 10 (2019-05-22 (水) 19:35:38)
- 11 (2020-11-06 (金) 09:17:15)
- 12 (2022-10-21 (金) 11:56:49)
- title: JTextFieldの文字列に下線を付ける tags: [JTextField, JTextArea, Font, TextAttribute] author: aterai pubdate: 2013-10-28T00:39:37+09:00 description: JTextFieldにテキスト属性を設定したフォントを使用して、文字列に下線を引きます。
概要
JTextField
にテキスト属性を設定したフォントを使用して、文字列に下線を引きます。
Screenshot
Advertisement
サンプルコード
Font font = textField.getFont();
Map<TextAttribute, Object> attrs = new HashMap<>(font.getAttributes());
attrs.put(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_LOW_DOTTED);
textField.setFont(font.deriveFont(attrs));
//...
enum UnderlineStyle {
UNDERLINE_OFF(-1),
UNDERLINE_LOW_DASHED(TextAttribute.UNDERLINE_LOW_DASHED),
UNDERLINE_LOW_DOTTED(TextAttribute.UNDERLINE_LOW_DOTTED),
UNDERLINE_LOW_GRAY(TextAttribute.UNDERLINE_LOW_GRAY),
UNDERLINE_LOW_ONE_PIXEL(TextAttribute.UNDERLINE_LOW_ONE_PIXEL),
UNDERLINE_LOW_TWO_PIXEL(TextAttribute.UNDERLINE_LOW_TWO_PIXEL),
UNDERLINE_ON(TextAttribute.UNDERLINE_ON);
public final int style;
private UnderlineStyle(int style) {
this.style = style;
}
}
View in GitHub: Java, Kotlin解説
上記のサンプルでは、Font#deriveFont(...)
メソッドに下線の属性キーに点線や破線の属性値を設定したTextAttribute
のマップを適用して、下線属性の付いた新しいFont
オブジェクトを生成しています。
- 注:
JTextArea
の下にあるJTextField
のように、その高さが足りない場合、下線の種類によって表示されないことがある
参考リンク
- TextAttribute (Java Platform SE 7)
- java - Is it possible to underline text on JTextField?If Yes, How? - Stack Overflow