删除JComboBox中的向下箭头 [英] Remove the down arrow in JComboBox
问题描述
我想创建一个自动完成程序,我正在使用 JComboBox
。
I want to create an auto complete program and I am using JComboBox
for this.
现在我要删除 JComboBox
中的向下箭头。如何删除箭头?
Now I want to remove the down arrow in the JComboBox
. How to remove the arrow?
推荐答案
JComboBox 是复合 JComponent 并包含 JButton 图标,您可以通过setIcon(null)删除它或替换它与另一个图标
JComboBox is compound JComponent and contains JButton with Icon, you can remove that by setIcon(null) or replace with another Icon
例如(如何通过简单步骤执行此操作,注意仅适用于金属外观
)
for example (how to do it with simple steps, NOTICE valid just for Metal Look and Feel
)
JComboBox coloredArrowsCombo = myComboBox;
BufferedImage coloredArrowsImage = null;
try {
coloredArrowsImage = ImageIO.read(AppVariables.class.getResource("resources/passed.png"));
} catch (IOException ex) {
Logger.getLogger(someClessName.class.getName()).log(Level.SEVERE, null, ex);
}
if (!(coloredArrowsImage == null)) {
Icon coloredArrowsIcon = new ImageIcon(coloredArrowsImage);
Component[] comp = coloredArrowsCombo.getComponents();
for (int i = 0; i < comp.length; i++) {
if (comp[i] instanceof MetalComboBoxButton) {
MetalComboBoxButton coloredArrowsButton = (MetalComboBoxButton) comp[i];
coloredArrowsButton.setComboIcon(coloredArrowsIcon);
break;
}
}
}
编辑:为了更好的输出你可以放在这里 coloredArrowsButton.setRolloverIcon(someIcon);
for better output you can put here coloredArrowsButton.setRolloverIcon(someIcon);
这篇关于删除JComboBox中的向下箭头的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!