1

我必须在 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;
   //            }
            };
        }
    });

请在这里帮助我。非常感谢您的时间和建议。

4

1 回答 1

1

您可以改写 getIcon 。根据需要缓存图标。

@Override
public Icon getIcon() {
  Icon defaultIcon = new ImageIcon(getClass().getResource("images/dropdown_icon.png"));
  return defaultIcon;
}
于 2012-11-15T17:58:13.363 回答