我刚开始使用JavaFX 11,而SwingFXUtils似乎消失了(或重命名了?)
我尝试手动下载它,但是模块系统抱怨import sun.awt.image.IntegerComponentRaster;
,但我无法使它正常工作。
我需要将Swing Icon转换为JavaFX图像。
答案 0 :(得分:4)
自Java 9以来,.say for |$i
已被移动到SwingFXUtils
模块的软件包javafx.swing
下。
请参阅JavaFX 9 Javadoc和托管在Javadoc的新JavaFX 11 https://openjfx.io。
如果您的样本有任何问题,请确保添加了正确的VM选项。从入门guide中查看示例。
可能您需要添加以下内容:
javafx.embed.swing
答案 1 :(得分:1)
如果已将javafx.swing模块正确地添加到了构建路径中,SwingFXUtils仍然存在(请参阅José的答案),但是不再允许导入类似sun.awt.image.IntegerComponentRaster
的内部类。
要转换图标,您可以尝试以下操作:
Icon icon; // Your icon
BufferedImage image = (BufferedImage)((ImageIcon)icon).getImage();
WritableImage writable = SwingFXUtils.toFXImage(image, null);
这是否奏效取决于图标的创建方式,但值得一试。