gpt4 book ai didi

java - 使用 JavaFX 手动触发 CheckComboBox 的下拉菜单

转载 作者:行者123 更新时间:2023-11-29 04:12:49 26 4
gpt4 key购买 nike

我有一个 CheckComboBox,其中填充了我使用以下方法从网站获取的数据。

public void getCompanies() {
// This method is called every time the user types a letter in the URLText box.
// Grab data from the website and add the data to a list.
HTMLParser p = new HTMLParser(URLText.getText());
List<String> a = p.GetCompanyNames();
// Remove old data so new data can be added.
dropdownMultiple.getItems().remove(0, dropdownMultiple.getItems().size());

for(String element : a) {
dropdownMultiple.getItems().add(element);
}
}

这工作得很好,但我想让 CheckComboBox 在调用此方法时打开下拉列表。我有一个文本框覆盖在 CheckComboBox 之上,因此用户无法单击它。最终,我希望它看起来像一个自动完成下拉菜单,只要用户在文本框中键入内容就会下拉。

换句话说,如何在用户不点击的情况下激活 CheckComboBox 的下拉事件?

最佳答案

我假设你在谈论 org.controlsfx.control.CheckComboBox .不幸的是,库似乎没有提供以编程方式显示弹出窗口的方法。但是,如果您不介意依赖实现细节,那么有一种方法可以满足您的需求。

CheckComboBox 的外观在内部使用 JavaFX ComboBox。后一个类有一个名为 show 的方法,可用于手动显示弹出窗口。您可以通过调用 Node.lookup(String) 来访问此 ComboBox

CheckComboBox<String> box = new CheckComboBox<>();
((ComboBox<?>) box.lookup(".combo-box")).show();

注意:这需要 CheckComboBox 显示在窗口中。

提醒一下,这涉及实现细节,因此可能会中断,恕不另行通知。通过查看源代码,这应该适用于 ControlsFX 8.40.14 和 9.0.0。

关于java - 使用 JavaFX 手动触发 CheckComboBox 的下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54047662/

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