Java 重写setUI中的setIcon()方法(新BasicComboxUI){}
我必须在JComboBox的下拉列表中设置自定义图像。我很成功地删除了它(通过覆盖getWidth()),但我无法用自定义图像替换arrow。下面是我的代码片段,以获得更好的想法。我不知道我哪里做错了,但它在按钮部分显示了一些升高的部分Java 重写setUI中的setIcon()方法(新BasicComboxUI){},java,overriding,jcombobox,Java,Overriding,Jcombobox,我必须在JComboBox的下拉列表中设置自定义图像。我很成功地删除了它(通过覆盖getWidth()),但我无法用自定义图像替换arrow。下面是我的代码片段,以获得更好的想法。我不知道我哪里做错了,但它在按钮部分显示了一些升高的部分 cmbYear = new JComboBox(); cmbYear.setUI(new BasicComboBoxUI(){ protected JButton createArrowButton() {
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;
// }
};
}
});
请帮帮我。非常感谢您的时间和建议 您可以替代getIcon。根据需要缓存图标
@Override
public Icon getIcon() {
Icon defaultIcon = new ImageIcon(getClass().getResource("images/dropdown_icon.png"));
return defaultIcon;
}
您可以替代getIcon。根据需要缓存图标
@Override
public Icon getIcon() {
Icon defaultIcon = new ImageIcon(getClass().getResource("images/dropdown_icon.png"));
return defaultIcon;
}
非常感谢你的帮助。它现在可以很好地工作了。Icon defaultIcon=newImageIcon(“images/dropdown_Icon.png”);啊,很抱歉,我正在从包路径加载图标。非常感谢您的帮助。它现在可以很好地工作了。Icon defaultIcon=newImageIcon(“images/dropdown_Icon.png”);啊,很抱歉,我正在从包路径加载图标。