我偶然发现javafx2中的组合框存在一个问题。2.这是一个场景:
此窗格包含6个组合框。其中三个有固定项:cboReport、cboSales、cboSend。其中三个从db(ObservableList)获取数据,并在窗格可见时填充:cboFile、cboCustomer、cboVet
当窗口关闭时,窗格上的数据将通过resetGUI_editFilePane()方法重置。有以下几行:
...
cboReport.getSelectionModel().clearSelection();
cboSales.getSelectionModel().clearSelection();
cboSend.getSelectionModel().clearSelection();
cboFile.getSelectionModel().clearSelection();
cboCustomer.getSelectionModel().clearSelection();
cboVet.getSelectionModel().clearSelection();
cboFile.getItems().clear();
cboCustomer.getItems().clear();
cboVet.getItems.clear();
...
当用户通过按下editFile按钮再次打开窗格时,我注意到只有固定项组合框清除了它们的选择,动态填充的组合框显示最后选择的项,尽管选择本身的值为null
。对我来说,这看起来像一个图形错误,还是我做错了什么?
有没有办法解决这个问题,或者重置组合框的最佳方法是什么?
编辑2014/08/27:
这正式不是一个bug(clearSelection()不清除值):
https://bugs.openjdk.java.net/browse/JDK-8097244
官方的“解决方案”是在清除选择后清除组合框的值。
cb.getSelectionModel().clearSelection();
// Clear value of ComboBox because clearSelection() does not do it
cb.setValue(null);
您可以检索项目,并将其全部删除:
cboVet.getItems().removeAll(cboVet.getItems());
我遇到了几乎完全相同的情况,在寻找解决方案时遇到了你的问题。幸运的是,我想出了一个强制复位组合框的变通方法。当您重置窗格上的数据时,而不是执行以下操作:
cboVet.getSelectionModel().clearSelection();
cboVet.getItems.clear();
像这样做。。。
parentNode.getChildren().remove(cboVet);
cboVet = new ComboBox(); // do whatever else you need to format your ComboBox
parentNode.add(cboVet);
您还需要在组合框上再次执行setItems(),以便填充新的组合框。这不是一个理想的解决方案,但它似乎像我所期望的那样工作。
这很简单。您只需要使用ComboBox的value属性。干得好。。。。
ComboBox c;
c.valueProperty().set(null);
我希望这对你有用
我有两个组合框。我正在填充这样的两个组合框。组合框1和2的名称是cmbpartyName和cmbprefPT2。 在这里,我从combox1中选择一个值,在它所选的索引更改事件中,如下所示。 由于两个组合框具有相同的值,如何从第二个组合框cmbPrefPT2中删除第一个组合框的选定值?
void clear_assign(string var) This clears the value of an assigned variable. This can be a single value, or an array of values. 清除指定模板变量的值。可以指定单独的一个变量名称,或者是一个数组。 Example 13-7. clear_assign 例子 13-7. 清除
问题内容: 我今天只是在学习片段。我按下一个按钮,它添加/删除了一个片段。但是,如果我尝试删除该片段,那么除了要删除的片段之外,每个片段都会被删除,为什么?第一次按正确添加一个片段。 我在xml中有两个这样的片段:当我单击按钮时,我希望添加未在xml中定义的片段,而确实是。但是,下次我按下按钮时,应该删除该片段。除该片段外,所有内容均被删除。 问题答案: 您无法删除使用XML添加的。如果要通过该方
Laravel项目在我的开发服务器(安全的https)中运行时没有任何问题。在我的新版本中,没有加载. env文件中的新配置。然后我在StackOverflow中找到了一些解决方案,上面说要清除Laravel配置和缓存。所以我运行以下命令, 使用上述命令清除缓存后,它无法正确加载样式表和js文件,并表示“混合内容:页面在”通过HTTPS加载,但请求不安全的脚本”。此请求已被阻止;内容必须通过HTT
void clear_all_assign() This clears the values of all assigned variables. 清除所有已赋值到模板中的值。 Example 13-5. clear_all_assign 例子 13-5. 清除所有赋值 // clear all assigned variables $smarty->clear_all_assign();
问题内容: 我基本上是在寻找组合的 python版本 给定一个列表列表,我需要一个新列表,该列表给出列表之间所有可能的项目组合。 列表的数量是未知的,因此我需要一些适用于所有情况的列表。奖励积分,尽享优雅! 问题答案: 你需要: