尝试在 FXML 中使用 SVGPath 画一条线
Trying to draw a line with SVGPath in FXML
所以我正在尝试学习如何在 FXML 中使用 svg,我想做的第一件事就是画一条简单的线,然后再画出其他形状。从我在网上收集到的信息来看,我所要做的就是给它一个 moveTo 点,然后是一个 line 点。如果是这样,那我错过了什么?
<Button prefHeight="30" prefWidth="200" >
<shape>
<javafx.scene.shape.SVGPath content="M100,100 L150,150" />
</shape>
</Button>
示例解决方案
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.paint.*?>
<?import javafx.scene.layout.*?>
<?import java.lang.*?>
<?import javafx.scene.shape.*?>
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="86.0" prefWidth="99.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
<children>
<SVGPath content="M40,60 L20,20" layoutX="18.0" layoutY="2.0" stroke="BLACK" strokeWidth="3.0" />
</children>
</Pane>
背景
您可以参考此 tutorial on svg paths 了解背景信息(注意 JavaFX 仅处理路径字符串而不是完整的 svg XML 文档)。
所以我正在尝试学习如何在 FXML 中使用 svg,我想做的第一件事就是画一条简单的线,然后再画出其他形状。从我在网上收集到的信息来看,我所要做的就是给它一个 moveTo 点,然后是一个 line 点。如果是这样,那我错过了什么?
<Button prefHeight="30" prefWidth="200" >
<shape>
<javafx.scene.shape.SVGPath content="M100,100 L150,150" />
</shape>
</Button>
示例解决方案
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.paint.*?>
<?import javafx.scene.layout.*?>
<?import java.lang.*?>
<?import javafx.scene.shape.*?>
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="86.0" prefWidth="99.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
<children>
<SVGPath content="M40,60 L20,20" layoutX="18.0" layoutY="2.0" stroke="BLACK" strokeWidth="3.0" />
</children>
</Pane>
背景
您可以参考此 tutorial on svg paths 了解背景信息(注意 JavaFX 仅处理路径字符串而不是完整的 svg XML 文档)。