SwingFXUtils 发生了什么?
What has happened to SwingFXUtils?
我刚开始使用 JavaFX 11,SwingFXUtils 似乎不见了(或重命名?)
我尝试手动下载它,但是模块系统抱怨 import sun.awt.image.IntegerComponentRaster;
,我无法让它工作。
我需要将 Swing 图标转换为 JavaFX 图像。
如果您已将 javafx.swing 模块正确添加到构建路径(请参阅 José 的回答),SwingFXUtils 仍然存在,但不再允许导入像 sun.awt.image.IntegerComponentRaster
这样的内部 class .
要转换您的图标,您可以试试这个:
Icon icon; // Your icon
BufferedImage image = (BufferedImage)((ImageIcon)icon).getImage();
WritableImage writable = SwingFXUtils.toFXImage(image, null);
这是否有效取决于您的图标是如何创建的,但值得一试。
自 Java 9 起,SwingFXUtils
已移至 javafx.swing
模块,在包 javafx.embed.swing
.
下
参见 JavaFX 9 Javadoc and the new JavaFX 11 Javadoc, hosted at https://openjfx.io。
如果您的示例有任何问题,请确保您添加了正确的 VM 选项。查看入门示例 guide。
您可能需要添加如下内容:
--module-path <path-to>/javafx-sdk-11/lib --add-modules=javafx.controls,javafx.swing
我刚开始使用 JavaFX 11,SwingFXUtils 似乎不见了(或重命名?)
我尝试手动下载它,但是模块系统抱怨 import sun.awt.image.IntegerComponentRaster;
,我无法让它工作。
我需要将 Swing 图标转换为 JavaFX 图像。
如果您已将 javafx.swing 模块正确添加到构建路径(请参阅 José 的回答),SwingFXUtils 仍然存在,但不再允许导入像 sun.awt.image.IntegerComponentRaster
这样的内部 class .
要转换您的图标,您可以试试这个:
Icon icon; // Your icon
BufferedImage image = (BufferedImage)((ImageIcon)icon).getImage();
WritableImage writable = SwingFXUtils.toFXImage(image, null);
这是否有效取决于您的图标是如何创建的,但值得一试。
自 Java 9 起,SwingFXUtils
已移至 javafx.swing
模块,在包 javafx.embed.swing
.
参见 JavaFX 9 Javadoc and the new JavaFX 11 Javadoc, hosted at https://openjfx.io。
如果您的示例有任何问题,请确保您添加了正确的 VM 选项。查看入门示例 guide。
您可能需要添加如下内容:
--module-path <path-to>/javafx-sdk-11/lib --add-modules=javafx.controls,javafx.swing