Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:Combobox没有';t显示所选图像_Java_Image_Combobox_Javafx - Fatal编程技术网

Java:Combobox没有';t显示所选图像

Java:Combobox没有';t显示所选图像,java,image,combobox,javafx,Java,Image,Combobox,Javafx,我试图显示一个二维组合框数组(10 x 10) 让它代表一个董事会。 在每个组合框中,我都可以选择一个图像。 这是可行的,但唯一的问题是它不显示选定的图像。 只有10个组合框中的5个才会显示选择图像。 这困扰了我好几天,我找不到解决办法。 这就是代码的样子。 附加信息:(它位于网格窗格内,底部的图片显示了它的外观) 对于(int i=0;i请阅读组合框的Java文档: 需要注意的是,如果在组合框上设置了单元格工厂, 单元格仅在组合框打开时显示的ListView中使用 单击。如果您还希望自定义 在

我试图显示一个二维组合框数组(10 x 10) 让它代表一个董事会。 在每个组合框中,我都可以选择一个图像。 这是可行的,但唯一的问题是它不显示选定的图像。 只有10个组合框中的5个才会显示选择图像。 这困扰了我好几天,我找不到解决办法。 这就是代码的样子。 附加信息:(它位于网格窗格内,底部的图片显示了它的外观)


对于(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()));
                      }
                    }
              });