gpt4 book ai didi

java - 如何删除 JComboBox 'click and see dropdown' 功能?

转载 作者:行者123 更新时间:2023-11-30 09:12:40 28 4
gpt4 key购买 nike

我有一个 JComboBox,它使用 GlazedLists 添加提前输入功能。我希望用户输入一个字符串并看到提前输入(这要感谢 Glazedlists)。但是,我不希望用户能够单击组合框的向下箭头并检查下拉列表。我已使向下箭头不可见,并使组合框可编辑,使其类似于 JTextField。但是,您仍然可以将鼠标悬停在向下箭头曾经所在的区域上并单击它。这导致出现下拉列表。我要更改什么或覆盖哪些方法才能删除“单击并获取下拉菜单”功能。

ComboBox<String> box = new ComboBox<String>();
box.setEditable(true);
box.setUI(new BasicComboBoxUI(){ // make the down arrow invisible
protected JButton createArrowButton() {
return new JButton() {
public int getWidth() {
return 0;
}
};
}
});

SwingUtilities.invokeLater(new Runnable(){
public void run(){
Object[] elements = new Object[] {"java", "perl", "python", "haskell", "erlang", "groovy"};
AutoCompleteSupport.install(box, GlazedLists.eventListOf(elements));
}
});

最佳答案

覆盖JButton#addMouseListener:

JComboBox<String> box = new JComboBox<>();
box.setEditable(true);
box.setUI(new BasicComboBoxUI() { // make the down arrow invisible
protected JButton createArrowButton() {
return new JButton() {
public int getWidth() {
return 0;
}

@Override
public synchronized void addMouseListener(MouseListener l) {
}
};
}
});

关于java - 如何删除 JComboBox 'click and see dropdown' 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21453354/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com