一尘不染

如何更改JComboBox中的箭头样式

java

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

我知道可以使用synth
xml文件甚至UIManager.put(…),但是我不知道如何。我现在要做的就是将箭头图像更改为其他图像,无论是以编程方式还是仅覆盖其使用的图像。我到底该怎么做?


阅读 527

收藏
2020-09-08

共1个答案

一尘不染

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

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));
2020-09-08