JavaFX组合框图像

JavaFX组合框图像,java,javafx,combobox,Java,Javafx,Combobox,我正在尝试创建一个组合框,该组合框将显示所选图像的预览,但组合框将显示字符串值 唯一可行的方法是创建节点的组合框,但这会导致一旦选定的选项从下拉菜单中消失,如果有人有任何建议,将不胜感激 我的代码如下: String notOnLine = "file:Java1.png"; String onLine = "file:Java2.png"; ObservableList<String> options = FXCollections.observableArrayList(); o

我正在尝试创建一个组合框,该组合框将显示所选图像的预览,但组合框将显示字符串值

唯一可行的方法是创建
节点
组合框
,但这会导致一旦选定的选项从下拉菜单中消失,如果有人有任何建议,将不胜感激

我的代码如下:

String notOnLine = "file:Java1.png";
String onLine = "file:Java2.png";
ObservableList<String> options = FXCollections.observableArrayList();
options.addAll(notOnLine, onLine);
final ComboBox<String> comboBox = new ComboBox(options);
comboBox.setCellFactory(c -> new StatusListCell());

我希望列表关闭后,图像将显示在组合框中。现在它只是显示URL(例如
文件:Java1.png
)。

您可以指定
组合框的名称:

comboBox.setButtonCell(new StatusListCell());
按钮单元格用于呈现组合框中显示的内容 “按钮”区域


选择图像后,我希望在组合框中看到该图像,现在只有图像路径(字符串)可以调整高度约束,以使
图像视图
适合组合框
组合框。setMinHeight(50)。此外,应避免重新创建
ImageView
s。将
image
属性设置为
null
应不会显示任何内容,并允许您避免重新创建节点。同样,对于小图像,这可能不是问题,但是对于较大的图像,我建议使用缓存(例如,
Map
)并在后台加载图像。。。
comboBox.setButtonCell(new StatusListCell());