その値を使用してパスを作成できますか??
Path p=new Path();
p.getElements().add(new MoveTo(mouse.getX(), mouse.getY()));
System.out.Print(p);
これは印刷されます
Path@29f12030
これをもう一度パスに変換できますか?
すでにパスを作成しており、それはまだパスです。変換する必要はありません。
呼び出すときは、オブジェクトSystem.out.print(p)
のデフォルトtoString
関数を呼び出しp
ます。これにより、パスへの内部 Java 参照が出力されます (例: Path@29f12030
)。以下のサンプルに示すように、デフォルトのメソッドを独自の実装でオーバーライドするtoString
と、print ステートメントにパスの値が表示されます。
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() + "}";
}
}
}
アプリ アーキテクチャのコンテキストで、ネットワーク経由でデータを送信する目的を詳しく説明する必要があると思います。それについていくつかの基本的な詳細を教えてください。私の理解ではPath
、ネットワーク経由でインスタンスを送信し、反対側でそれを処理できるようにする必要があります。もしそうなら、シリアライゼーション API
を見てください。「Java を使用してネットワーク経由でオブジェクトを転送する方法」に関する投稿をお読みください。を拡張するか別のクラスにラップしてから、Serializable を実装します。
- または、Java Architecture for XML Binding (JAXB) を参照してください。基本的にこれを使用することで、オブジェクトを XML 文字列に変換/マーシャリングし、ネットワーク経由で転送してからアンマーシャリングすることができます。これがhello world の例です。Path
- または、独自のエンコード/デコード メカニズムを実装して、Path
オブジェクトを転送します。