SwingFXUtils发生了什么事?

时间:2018-09-28 15:04:50

标签: javafx javafx-11

我刚开始使用JavaFX 11,而SwingFXUtils似乎消失了(或重命名了?)

我尝试手动下载它,但是模块系统抱怨import sun.awt.image.IntegerComponentRaster;,但我无法使它正常工作。

我需要将Swing Icon转换为JavaFX图像。

2 个答案:

答案 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);

这是否奏效取决于图标的创建方式,但值得一试。