独自の ListCellRenderer を使って JComboBox に空の要素を表示。
スポンサーリンク
単純に以下のようにやればできるもんだと思ってました。
public class MyListCellRenderer implements ListCellRenderer {
/** RendererComponent */
private JLabel label = new JLabel();
@Override
public Component getListCellRendererComponent(JList jlist, Object obj, int i, boolean flag, boolean flag1) {
:
label.setText("");
:
return this;
}
}
でもこれだと表示されません。
JLabel$AccessibleJLabel#getTextRectangle() メソッドの実装を追っていけば何となく分かりますが、null または空文字が設定されていると高さを 0 にしてるようです。
なので、
label.setText("");
を
label.setText(" ");
に変えれば、空の要素を表示することができます。