A JComboBox
uses a ListCellRenderer
允许您自定义值的呈现方式。
看一眼提供自定义渲染器 http://docs.oracle.com/javase/tutorial/uiswing/components/combobox.html#renderer更多细节
例如...
public class CategoryListCellRenderer extends DefaultListCellRenderer {
@Override
public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
if (value instanceof Category) {
value = ((Category)value).name;
}
return super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); //To change body of generated methods, choose Tools | Templates.
}
}
然后你只需指定组合框的渲染
tileCategory.setRenderer(new CategoryListCellRenderer());
现在,话虽如此,这将阻止用户使用内置搜索功能的组合框。
为此,请检查带有自定义渲染器的组合框 http://tips4java.wordpress.com/2013/11/17/combo-box-with-custom-renderer/可能的解决方法。这是由我们自己的 camickr 创作的