【问题标题】:How can I change the arrow style in a JComboBox如何更改 JComboBox 中的箭头样式
【发布时间】:2011-03-01 19:24:48
【问题描述】:

假设我想为 JComboBox 中的箭头使用自定义图像,我该怎么做?

我知道可以使用合成器 xml 文件,甚至 UIManager.put(...),但我不知道如何。此时我想做的就是将箭头图像更改为其他内容,以编程方式或什至只是覆盖它使用的图像。我该怎么做?

【问题讨论】:

    标签: java swing look-and-feel jcombobox synth


    【解决方案1】:

    您可以在BasicComboBoxUI 中覆盖createArrowButton()BasicArrowButton 是一个方便的起点。

    class ColorArrowUI extends BasicComboBoxUI {
    
        public static ComboBoxUI createUI(JComponent c) {
            return new ColorArrowUI();
        }
    
        @Override protected JButton createArrowButton() {
            return new BasicArrowButton(
                BasicArrowButton.SOUTH,
                Color.cyan, Color.magenta,
                Color.yellow, Color.blue);
        }
    }
    

    然后安装它。

    JComboBox combo = new JComboBox();
    combo.setUI(ColorArrowUI.createUI(combo));
    

    【讨论】:

    • 不负责花哨的配色方案。 :-)
    • 完美!!非常感谢:)
    • 对我来说......从 JComboBox 和 button.setIcon() 中提取 JButton 作为 JComponent 可能是最安全的,f.e.使用 ButtonModel 也可以为 JComboBox 提供鼠标悬停效果.. BasicUI 的 +1
    • @trashgod 谢谢。 :)
    猜你喜欢
    • 2013-09-17
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 2018-03-15
    • 2021-01-09
    • 1970-01-01
    • 2015-10-18
    • 2020-12-29
    相关资源
    最近更新 更多