Вы уже создали путь, и это все еще путь, вам не нужно его преобразовывать.
При вызове System.out.print(p)
вызова функции по умолчанию toString
на ваш p
объекта, который печатает внутреннюю ссылку на Java для вашего пути (например, [email protected]
). Если вы переопределите метод по умолчанию toString
с вашей собственной реализацией, как показано в примере ниже, в заявлении на печать будет отображаться значение пути.
public class PrintPath extends Application {
public static void main(String[] args) throws Exception { launch(args); }
@Override public void start(final Stage stage) throws Exception {
Path p = new PrintedPath();
p.getElements().add(new MoveTo(100, 150));
System.out.println(p);
stage.setScene(new Scene(new StackPane()));
stage.show();
}
class PrintedPath extends Path {
@Override public String toString() {
StringBuilder b = new StringBuilder();
for (PathElement e: getElements()) {
if (e instanceof MoveTo) {
MoveTo m = (MoveTo) e;
b.append("M").append(m.getX()).append(" ").append(m.getY()).append(" ");
}
// logic to display other path element types could be added here . . .
}
return "Path{ " + b.toString() + "}";
}
}
}
Я хотел бы знать, возможен ли путь строительства от значения. Затем мы можем отправлять данные по сети неуклюжим способом. –
Как легко сериализованный (в строковый) и десериализованный формат пути, я бы предложил использовать [ SVGPath] (http://docs.oracle.com/javafx/2.0/api/javafx/scene/shape/SVGPath.html). Если вы это сделаете, см. Спецификацию формата строки SVG (http://www.w3.org/TR/SVG/paths.html). – jewelsea