Swing/IconComboBox のバックアップ(No.13)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/IconComboBox へ行く。
- 1 (2004-12-27 (月) 01:32:14)
- 2 (2004-12-27 (月) 03:24:01)
- 3 (2005-04-28 (木) 04:33:07)
- 4 (2005-06-08 (水) 16:12:34)
- 5 (2005-06-27 (月) 06:47:31)
- 6 (2005-10-19 (水) 20:02:24)
- 7 (2006-02-27 (月) 16:02:57)
- 8 (2006-09-08 (金) 14:48:59)
- 9 (2007-05-28 (月) 06:30:36)
- 10 (2009-08-20 (木) 16:32:34)
- 11 (2009-09-06 (日) 12:31:29)
- 12 (2013-04-14 (日) 00:44:03)
- 13 (2015-03-17 (火) 15:01:21)
- 14 (2015-03-17 (火) 15:06:33)
- 15 (2016-12-28 (水) 17:18:41)
- 16 (2017-12-10 (日) 22:12:47)
- 17 (2019-12-05 (木) 15:41:28)
- 18 (2021-06-08 (火) 11:23:34)
- title: JComboBoxにアイコンを表示 tags: [JComboBox, Icon, ListCellRenderer, MatteBorder] author: aterai pubdate: 2004-12-27T01:32:14+09:00 description: JComboBoxを編集可にしてテキスト入力部分とリスト部分にアイコンを表示します。
概要
JComboBox
を編集可にしてテキスト入力部分とリスト部分にアイコンを表示します。
Screenshot
Advertisement
サンプルコード
private static Border makeIconBorder(JComponent c, ImageIcon i) {
int iw = i.getIconWidth();
Border b1 = BorderFactory.createMatteBorder(0, iw, 0, 0, i);
Border b2 = BorderFactory.createEmptyBorder(0, 5, 0, 0);
Border b3 = BorderFactory.createCompoundBorder(b1, b2);
return BorderFactory.createCompoundBorder(c.getBorder(), b3);
}
View in GitHub: Java, Kotlin解説
- 一番上
- デフォルトの
ListCellRenderer
を使用するJComboBox
です。
- デフォルトの
- 上から二番目
JComboBox
フィールドが編集不可の場合、ListCellRenderer
を実装することでアイコン表示することができます。
- 下から二番目
JComboBox
フィールドが編集可の場合、ListCellRenderer
を実装しても、Editor
部分はアイコン表示されません。
- 一番下
JComboBox
フィールドが編集可の場合でも、MatteBorder
を使用することでエディタ部分にもアイコンを表示することができます。