【发布时间】:2011-09-20 13:20:52
【问题描述】:
是否可以隐藏JComboBox中显示的箭头
我试过设置:
combo.getComponent(0).setSize(new Dimension(1,1));
但它似乎不起作用
【问题讨论】:
-
和重复评论:为什么?不要发明ui小部件,用户会感到困惑!
是否可以隐藏JComboBox中显示的箭头
我试过设置:
combo.getComponent(0).setSize(new Dimension(1,1));
但它似乎不起作用
【问题讨论】:
您必须为此创建一个新的组合框 UI:
combo.setUI(new BasicComboBoxUI() {
protected JButton createArrowButton() {
return new JButton() {
public int getWidth() {
return 0;
}
};
}
});
但请注意从与您当前外观相匹配的基本 UI 继承。
例如,如果您使用 Substance,您应该从 SubstanceComboBoxUI 而不是 BasicComboBoxUI 派生新 UI。否则,您可能会失去当前 L&F 提供的功能。
编辑:如果你想让它获得某种自动完成功能,最好坚持使用普通的JTextField 并使用来自SwingX 的AutoCompleteDecorator。
【讨论】:
BasicComboBoxUI.createArrowButton 必须返回 JButton。 (download.oracle.com/javase/7/docs/api/javax/swing/plaf/basic/…)
AutoCompleteDecorator。 (更新了我的答案)