Java:Combobox没有';t显示所选图像
我试图显示一个二维组合框数组(10 x 10) 让它代表一个董事会。 在每个组合框中,我都可以选择一个图像。 这是可行的,但唯一的问题是它不显示选定的图像。 只有10个组合框中的5个才会显示选择图像。 这困扰了我好几天,我找不到解决办法。 这就是代码的样子。 附加信息:(它位于网格窗格内,底部的图片显示了它的外观)Java:Combobox没有';t显示所选图像,java,image,combobox,javafx,Java,Image,Combobox,Javafx,我试图显示一个二维组合框数组(10 x 10) 让它代表一个董事会。 在每个组合框中,我都可以选择一个图像。 这是可行的,但唯一的问题是它不显示选定的图像。 只有10个组合框中的5个才会显示选择图像。 这困扰了我好几天,我找不到解决办法。 这就是代码的样子。 附加信息:(它位于网格窗格内,底部的图片显示了它的外观) 对于(int i=0;i请阅读组合框的Java文档: 需要注意的是,如果在组合框上设置了单元格工厂, 单元格仅在组合框打开时显示的ListView中使用 单击。如果您还希望自定义 在
对于(int i=0;i请阅读组合框的Java文档:
需要注意的是,如果在组合框上设置了单元格工厂,
单元格仅在组合框打开时显示的ListView中使用
单击。如果您还希望自定义
在组合框的“按钮”区域中,可以设置自定义ListCell实例
在按钮单元格属性中
简而言之,您还需要设置combobox.setButtonCell()
。不过,更好的选择是在您的情况下使用ChoiceBox
。感谢您的宝贵建议。
添加此代码为我解决了它
box.setButtonCell(new ListCell<ImageView>()
{
@Override protected void updateItem(ImageView item, boolean empty)
{
super.updateItem(item, empty);
if (item == null || empty) {
setGraphic(null);
} else {
setGraphic(new ImageView(item.getImage()));
}
}
});
box.setButtonCell(新的ListCell()
{
@重写受保护的void updateItem(ImageView项,布尔值为空)
{
super.updateItem(项,空);
如果(项==null | |空){
设置图形(空);
}否则{
setGraphic(新的ImageView(item.getImage());
}
}
});
box.setButtonCell(new ListCell<ImageView>()
{
@Override protected void updateItem(ImageView item, boolean empty)
{
super.updateItem(item, empty);
if (item == null || empty) {
setGraphic(null);
} else {
setGraphic(new ImageView(item.getImage()));
}
}
});