2017-07-15 1 views
2

私は、スタックペインでシェイプをレイアウトし、シェイプをクリックしてドラッグすることでシェイプを移動できるプログラムを作成しています。これらのシェイプ構成は、ファイルから保存してロードすることができます。私はまた、意思でウィンドウのサイズを変更できるようにしたい。これが問題の発生場所です。親のスケーリング時にノードのスケール定数を作るにはどうしたらいいですか?

シェイプの位置を一定に保つために、保存と読み込みの設定を簡単にしながら多くのソリューションを試しました。最も効果があったのは、高さと幅のプロパティをバインドするのではなく、スタックペインの尺度をバインドして親を塗りつぶす魔法です。

これは、スタックペインがその位置を一定に保持するときに、スタックペイン内のシェイプをスケールします。これはまさに私が望むものです。しかし、それぞれの図形内には、図形を「ロック」するボタンとして使用するイメージビューがあるため、マウスでドラッグして移動することはできません。この画像ビューは、スタックペインの縮尺が変わったときに拡大/縮小します。

というと、私のスタックペインの内容は拡大/縮小時にスケールされるため、領域の拡大縮小、すべての子と子のスケーリングが行われると考えられています。私はこの効果を防​​ぐ方法を探しています。

私はsetManaged (偽)を使用して、そしてpane.setScaleShape(偽)でコンテナペインでImageViewのを入れてみましたが、どちらも働きました。 setScaleShape(boolean)は私が使いたいもののように見えますが、動作させる方法を理解できませんでした。適切に使用する方法や、この問題に対する別の解決方法については、ご了承ください。

+1

投稿[mcve] .. – user1803551

答えて

0

主な間違いは、図形を直接StackPaneに配置することです。 StackPaneは、特定の方法で子供を配置するレイアウトペインですが、あなたが望むのは絶対配置です。したがって、最も簡単な解決策は、単純なペインをスタックペインに配置し、このペインにシェイプを追加することです。ペインはレイアウトを行わず、指定した位置を保持します。

関連する問題