我必须在JComboBox的下拉列表中设置自定义图像。我很成功地删除它(通过覆盖getWidth())但我无法用自定义图像替换箭头。这是我的代码片段以获得更好的想法。我不知道我在哪里做错了,但它在按钮部分显示了一些抬高的部分。
cmbYear = new JComboBox();
cmbYear.setUI(new BasicComboBoxUI(){
protected JButton createArrowButton() {
return new JButton() {
private static final long serialVersionUID = 1L;
public void setIcon(Icon defaultIcon) {
defaultIcon = new ImageIcon("images/dropdown_icon.png");
super.setIcon(defaultIcon);
}
// public int getWidth() {
// return 0;
// }
};
}
});
请在这里帮助我。非常感谢你的时间和建议。
答案 0 :(得分:1)
您可以改写getIcon。根据需要缓存图标。
@Override
public Icon getIcon() {
Icon defaultIcon = new ImageIcon(getClass().getResource("images/dropdown_icon.png"));
return defaultIcon;
}