我有一个 JavaFX 表格视图,在其中列出文件及其属性,包括文件的图标。我的问题是图标的一部分丢失了。
我不知道如何完整地描述它,所以我在下面添加了一张图片。
我的桌面视图在右侧,Windows 资源管理器在左侧。
这是代码:
@Override
public void updateItem(ImageIcon imageIcon, boolean empty){
if (imageIcon != null){
// I have tried adding minimum width and height too
HBox box= new HBox();
// JavaFX scene imageview
ImageView imageView = new ImageView();
// Have tried with and without setFitHeight
imageView.setFitHeight(16);
imageView.setFitWidth(16);
// This line prints: 16 16
System.out.println(imageIcon.getIconWidth() + " " + imageIcon.getIconHeight());
// Create BufferedImage of the imageicon
BufferedImage bi = new BufferedImage(
imageIcon.getIconWidth(),
imageIcon.getIconHeight(),
BufferedImage.TYPE_INT_ARGB);
Graphics g = bi.createGraphics();
imageIcon.paintIcon(null, g, 0, 0);
g.dispose();
// BufferedImage to fxImage
Image fxImage = SwingFXUtils.toFXImage(bi, null);
imageView.setImage(fxImage);
box.getChildren().addAll(imageView);
setGraphic(box);
}
}
谢谢。
更新
我又谷歌了一些,我直接复制了一个示例并粘贴到一个新项目中,图标也发生了同样的事情。在这个例子中,用户可能通过判断图标的外观来使用Windows 7,所以也许这就是它在Windows 8中的样子。这是底部答案中带有图片的代码:www.stackoverflow。 com/questions/28034432/
检查填充:将单元格和行填充设置为零! 如果这不起作用,请缩放图像视图并确保它适合行高!