TITLE:JComboBoxの高さを変更する

Posted by at 2009-03-02

JComboBoxの高さを変更する

JComboBox自体の高さや、ドロップダウンリスト内にあるアイテムの高さを変更します。

  • &jnlp;
  • &jar;
  • &zip;
ComboItemHeight.png

サンプルコード

JComboBox combo1 = new JComboBox(items);
JLabel renderer1 = (JLabel)combo1.getRenderer();
renderer1.setPreferredSize(new Dimension(0, 32));

JComboBox combo2 = new JComboBox(items);
final ListCellRenderer r = combo2.getRenderer();
final Dimension dim = ((JLabel)r).getPreferredSize();
combo2.setRenderer(new ListCellRenderer() {
  @Override public Component getListCellRendererComponent(
        JList list, Object value, int index,
        boolean isSelected, boolean cellHasFocus) {
    Component c = r.getListCellRendererComponent(
      list, value, index, isSelected, cellHasFocus);
    c.setPreferredSize(new Dimension(100, (index<0)?dim.height:32));
    return c;
  }
});
View in GitHub: Java, Kotlin

解説

    • レンダラーにsetPreferredSizeで高さを設定しています。
    • レンダラーのgetListCellRendererComponentで、index0以上の時だけ、高さを変更しています。

コメント