0

その値を使用してパスを作成できますか??

 Path p=new Path();
 p.getElements().add(new MoveTo(mouse.getX(), mouse.getY()));
 System.out.Print(p);

これは印刷されます

Path@29f12030

これをもう一度パスに変換できますか?

4

2 に答える 2

1

すでにパスを作成しており、それはまだパスです。変換する必要はありません。

呼び出すときは、オブジェクト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() + "}";
    }
  }
}
于 2012-04-18T18:10:19.877 に答える
1

アプリ アーキテクチャのコンテキストで、ネットワーク経由でデータを送信する目的を詳しく説明する必要があると思います。それについていくつかの基本的な詳細を教えてください。私の理解ではPath、ネットワーク経由でインスタンスを送信し、反対側でそれを処理できるようにする必要があります。もしそうなら、シリアライゼーション API
を見てください。「Java を使用してネットワーク経由でオブジェクトを転送する方法」に関する投稿をお読みください。を拡張するか別のクラスにラップしてから、Serializable を実装します。 - または、Java Architecture for XML Binding (JAXB) を参照してください。基本的にこれを使用することで、オブジェクトを XML 文字列に変換/マーシャリングし、ネットワーク経由で転送してからアンマーシャリングすることができます。これがhello world の例です。Path

- または、独自のエンコード/デコード メカニズムを実装して、Pathオブジェクトを転送します。

于 2012-04-19T08:24:29.687 に答える