Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 重写setUI中的setIcon()方法(新BasicComboxUI){}_Java_Overriding_Jcombobox - Fatal编程技术网

Java 重写setUI中的setIcon()方法(新BasicComboxUI){}

Java 重写setUI中的setIcon()方法(新BasicComboxUI){},java,overriding,jcombobox,Java,Overriding,Jcombobox,我必须在JComboBox的下拉列表中设置自定义图像。我很成功地删除了它(通过覆盖getWidth()),但我无法用自定义图像替换arrow。下面是我的代码片段,以获得更好的想法。我不知道我哪里做错了,但它在按钮部分显示了一些升高的部分 cmbYear = new JComboBox(); cmbYear.setUI(new BasicComboBoxUI(){ protected JButton createArrowButton() {

我必须在JComboBox的下拉列表中设置自定义图像。我很成功地删除了它(通过覆盖getWidth()),但我无法用自定义图像替换arrow。下面是我的代码片段,以获得更好的想法。我不知道我哪里做错了,但它在按钮部分显示了一些升高的部分

    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”);啊,很抱歉,我正在从包路径加载图标。