【问题标题】:What has happened to SwingFXUtils?SwingFXUtils 发生了什么?
【发布时间】:2018-09-28 15:04:50
【问题描述】:

我刚开始使用 JavaFX 11,SwingFXUtils 好像没了(或者改名了?)

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

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

【问题讨论】:

    标签: javafx javafx-11


    【解决方案1】:

    从 Java 9 开始,SwingFXUtils 已移至 javafx.swing 模块,位于包 javafx.embed.swing 下。

    请参阅 JavaFX 9 Javadoc 和新的 JavaFX 11 Javadoc,托管在 https://openjfx.io

    如果您的示例有任何问题,请确保您添加了正确的 VM 选项。请参阅入门中的示例guide

    您可能需要添加以下内容:

    --module-path <path-to>/javafx-sdk-11/lib --add-modules=javafx.controls,javafx.swing
    

    【讨论】:

      【解决方案2】:

      如果您已将 javafx.swing 模块正确添加到构建路径(请参阅 José 的回答),SwingFXUtils 仍然存在,但不再允许导入像 sun.awt.image.IntegerComponentRaster 这样的内部类。

      要转换你的图标,你可以试试这个:

      Icon icon; // Your icon
      BufferedImage image = (BufferedImage)((ImageIcon)icon).getImage();
      WritableImage writable = SwingFXUtils.toFXImage(image, null);
      

      这是否有效取决于您的图标是如何创建的,但值得一试。

      【讨论】:

      • 我需要将图像实际重绘为 BufferedImage,因为图标的图像不是一个。
      猜你喜欢
      • 2016-02-28
      • 2014-02-28
      • 2010-10-02
      • 2020-03-14
      • 2011-04-09
      • 1970-01-01
      • 1970-01-01
      • 2014-05-09
      • 2014-03-26
      相关资源
      最近更新 更多