JavaFx 2.x シーンにビデオを埋め込み、必要に応じてサイズを変更して再配置したいと考えています。私が抱えている問題は次のとおりです。コンポーネントを作成してMediaView
から X または Y 座標を変換すると、ビュー全体が次のように適切に移動します。
MediaView mv = (...)
mv.setTranslateX(200);
mv.setTranslateY(200);
スケーリング プロパティを使用して同様の変換を行うことができます。
MediaView mv = (...)
mv.setScaleX(2);
mv.setScaleY(2);
これにより、インスタンスの次元が 2 倍に適切にスケーリングされます。 mv
ただし、問題は、これら 2 つの翻訳を組み合わせる場合です。mv
インスタンスはスケーリングされていますが、常に画面座標になります(0,0)
。もちろん、これは私の観点からは正しくない動作です。
MediaView
また、コンポーネントをラッパーノード内にラップしてGroup
、この要素で翻訳を実行しようとしました。動作は同じです。
MediaView
コンポーネントを同時に適切に移動およびスケーリングするにはどうすればよいですか?
編集:
here を使用していますが、これが私のコードですImageView
。ただし、これは無関係です。このコードを実行すると、画像は(0,0)
ではなく に配置され(100,100)
ます。
@Override
public void start(Stage stage) throws Exception {
Group root = new Group();
// Img's dimension is 200x200
javafx.scene.image.Image img = new javafx.scene.image.Image("/home/bachman/projects/cs-player/src/main/resources/content.png");
ImageView iv = new ImageView(img);
root.getChildren().add(iv);
// Move Image View
iv.setTranslateX(100);
iv.setTranslateY(100);
// Scale Image View
iv.setScaleX(2.0);
iv.setScaleY(2.0);
Scene scene = new Scene(root);
stage.setWidth(600);
stage.setHeight(600);
stage.setScene(scene);
stage.show();
}