当前位置: 首页 > 知识库问答 >
问题:

在JavaFX上的按钮中加载SVG文件

冯卜鹰
2023-03-14

我在Inkscape中创建了一个SVG图像。我把它和我的类放在同一个目录中。

有没有办法加载该图像并将其转换为SVG路径?

这背后的想法是用< code>getClass()获取图像。getResource("image.svg ")。toExternalForm()并将其转换为< code > imagesvg . set content()方法的SVGPath。之后,我想用< code>button.setGraphic()方法将SVGPath对象放入一个按钮中。

我不想使用转码器或BuffereImage类。

共有1个答案

漆雕令秋
2023-03-14

使用https://github.com/afester/FranzXaver提供的SvgLoader,您可以简单地将SVG文件加载为JavaFX节点,并将其设置为按钮上的图形:

...
    // load the svg file
    InputStream svgFile = 
          getClass().getResourceAsStream("/afester/javafx/examples/data/Ghostscript_Tiger.svg");
    SvgLoader loader = new SvgLoader();
    Group svgImage = loader.loadSvg(svgFile);

    // Scale the image and wrap it in a Group to make the button 
    // properly scale to the size of the image  
    svgImage.setScaleX(0.1);
    svgImage.setScaleY(0.1);
    Group graphic = new Group(svgImage);

    // create a button and set the graphics node
    Button button = new Button();
    button.setGraphic(graphic);

    // add the button to the scene and show the scene
    HBox layout = new HBox(button);
    HBox.setMargin(button, new Insets(10));
    Scene scene = new Scene(layout);
    primaryStage.setScene(scene);
    primaryStage.show();
...
 类似资料:
  • 问题内容: 我想在javafx 2.0中显示svg图像,但在API中找不到这样的东西。我猜是因为它仍处于测试阶段。 在最终版本发布之前,如何加载svg?是否已经有一个可以处理此问题的库,还是我需要解析自己的文件然后创建相应的形状? 谢谢 问题答案: 根据这个问题的答案,我找到了一个可行的解决方案。 1.包括对蜡染SVG工具包罐的引用 2.实现自己的转码器 (基于此答案由Devon_C_Miller

  • 我想选择要上传的文件,然后让用户做一些其他事情,然后当他单击提交按钮时,我想执行实际上传。 如何在不使用上载按钮的情况下执行/启动上载?

  • 问题内容: 在Swing中,我们可以禁用这样的按钮: 无论如何,使用JavaFX Button可以做到这一点吗?用户只能按一次按钮。 问题答案: 当然。只有相关 属性具有相反的语义,并称为。这意味着您可以使用(not )和。由于它是JavaFX属性,因此您还可以将侦听器附加到。 在http://docs.oracle.com/javafx/2/api/javafx/scene/Node.html#

  • 在Swing中,我们可以禁用如下按钮: 有什么方法可以用JavaFX按钮做到这一点吗?用户应该只能按一次按钮。

  • 我正在用JavaFX编写一个益智游戏。 您可以在单击网格后与另一个按钮进行按钮交换吗? 前任。我想在按下按钮1后交换按钮1和9。我认为应该有可能改变网格窗格的位置。 当我点击按钮4时,它与按钮9互换。 有没有办法做到这一点? 这是我的代码:

  • 我目前正在做一个个人投资组合,我试图制作一个按钮,如果你点击它,应该下载一份简历。 代码 让用户下载该文件。 我在REACTJS中工作,创建react应用程序