我有JCombobox
个项目很多,首先是NULL
值
打开组合框时,所有项目都有正常高度,但不是第一个,它们是一个非常薄的条带。这很难被点击,因为看起来什么都没有(但它在那里你可以选择它)。
问题是,如何让这个项目的高度与其他项目相同?
更多信息:
JCombobox.setPrototypeDisplayValue()
使用普通字符串(如“XXXXX”)或使用其中一个正常项目,但这会改变宽度而不是高度。JCombobox
子类在ObjectToStringConverter
中用空字符串(“”)表示: org.jdesktop.swingx.autocomplete.AutoCompleteDecorator.decorate
(combobox, ConfigurableToStringConverter.INSTANCE);
提前致谢
答案 0 :(得分:5)
覆盖用于组合框的默认渲染器(请参阅DefaultListCellRenderer
类)。检查getListCellRendererComponent()方法。调用super.getListCellRendererComponent(),如果value为NULL,则将空字符串(或空格字符串“”)设置为值。
答案 1 :(得分:2)
查看camickr的Combo Box Popup,代码来源显示setPreferredSize
的{{1}},但我看不出有任何理由不将Width
用于setPreferredSize
同样的方式。
唯一的问题是Height
和标准Swing代码