我有一个JavaFX tableview,其中列出了文件及其属性,包括文件的ICON。我的问题是缺少图标的一部分。
我不知道如何完全描述它,所以我在下面添加了一张图片。
我的桌面视图位于右侧,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 /问题/ 28034432 /