java - 带有文本和 ImageIcon 的 JComboBox

标签 java swing icons jcombobox listcellrenderer

早上好,请您介意帮我确定为什么这个 ListCellRenderer 类没有在组合框单元格上设置图像图标: 这是 ListCellRenderer 类:

    class MyComboRendere implements ListCellRenderer {

    public Component getListCellRendererComponent(JList list, Object value,
            int index, boolean isSelected, boolean cellHasFocus) {

        JLabel label = new JLabel();
        label.setOpaque(true);
        label.setText(value.toString());
        label.setIcon(new ImageIcon("/pics/Color-icon.png"));
        if (isSelected)
            if (index == 0)
                label.setBackground(Color.RED);
            else if (index == 1)
                label.setBackground(Color.GREEN);
            else
                label.setBackground(Color.BLUE);
        return label;
    }

}

这是设置组合框的方法:

public void setComboColor(){
    Vector<String> colors=new Vector<>();
    comboPanel=new JPanel(new BorderLayout());
    colors.add("RED");
    colors.add("GREEN");
    colors.add("BLUE");
    colorCombo=new JComboBox(colors);
    colorCombo.setRenderer(new MyComboRendere());
    comboPanel.add(colorCombo,BorderLayout.BEFORE_FIRST_LINE);
}

最佳答案

似乎 label.setIcon(new ImageIcon("/pics/Color-icon.png")); 没有获取图标的实际路径,因为它总是返回 null,但是它不会抛出异常。所以我尝试使用这个:

java.net.URL imgURL = getClass().getResource("/pics/Color-icon.png");
label.setIcon(icon);

并且工作正常

关于java - 带有文本和 ImageIcon 的 JComboBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15020679/

相关文章:

java - 将任意几何变换应用于 JPanel

javascript - 在 OpenLayers 3 中设置图标颜色的问题

java - jmf文件播放错误

java - Android Web 应用程序更新

Java 1.7,点击鼠标,获取X-Y,并向前发送信息

Java,在 JApplet 中为静态图像添加动画

icons - Windows 中应用程序图标的最佳实践

css - 有效的 CSS、XHTML 标志生成器

java - 为什么保存按钮在我的示例 Android 应用程序中不起作用

java - 摆脱 Android 操作栏。