【发布时间】:2017-10-10 04:26:09
【问题描述】:
我有一个奇怪的问题。我在 JavaFX 中使用 ComboBox,其中每个项目都是 HBox,并且是图像和标签的组合。
list.forEach(continent -> {
Image image = new Image(getClass().getResourceAsStream(continent + ".png"));
ImageView imageView = new ImageView(image);
imageView.setFitHeight(25);
imageView.setFitWidth(25);
imageCombo.getItems().add(new HBox(imageView, new Label(continent)));
});
list 是一个字符串数组列表。 imageCombo 只是 ComboBox<HBox> 以下是我启动应用程序时的结果。
到目前为止没有问题。但是,当我选择其中一项时,问题就来了。当我这样做时,它会被选中,但是当我再次展开组合框列表时,先前选择的项目变为空白,如果我选择该项目,那也将不可见。我尝试使用 Cell Factory,似乎对我没有多大帮助。以下是选择欧洲和非洲后的问题。请注意,Africa 显示为当前选定的项目,因为这是最后选择的值。
【问题讨论】:
-
API 文档不建议将
Node插入Combobox的项目。 A warning about inserting Nodes into the ComboBox items list。因此,可以通过为ComboBox的项目创建数据模型来解决,该项目具有图像和标签字符串,带有 cellfactory。 -
@monolith52 如果你能告诉我如何使用单元工厂来生成图像和字符串,那就太好了。我无法让它工作,所以我试着这样做。
标签: java javafx combobox javafx-8