1
javaFXを使用してマージソートアニメーションを実装しています。私は絶対座標を使用して図形を移動したい。私はsetToX()
とsetToY()
をTranslatetransition()
としています。しかし、これらの形状は固定間隔のHBoxにあります。私はそれらを別の場所に移動しようとしますが、動作しません。 setToX()
およびsetToY()
はHBoxを参考にしています。図形は常に一定の間隔で表示され、図形の順序は変化しません。私は絶対座標を得るためにgetLayoutX()
とgetLayoutY()
を使用します。誰が私を助けられるか??javaFX:translatetransitionを使用して絶対座標で図形を移動する
これらは、コードに関連している:
HBox hBox = new HBox(20);
hBox.setAlignment(Pos.CENTER);
hBox.setPadding(new Insets(0,0,0,0));
ArrayList<StackPane> list = new ArrayList<>();
Random random = new Random(5);
for (int i = 0; i < 12; i++) {
int num = random.nextInt(10);
Rectangle rectangle = new Rectangle(40, (num * 10) + 50);
rectangle.setFill(Color.valueOf("#0000FF"));
Text text = new Text(String.valueOf(num));
StackPane stackPane = new StackPane();
stackPane.setPrefSize(rectangle.getWidth(), rectangle.getHeight());
stackPane.setId(String.valueOf(num));
stackPane.getChildren().addAll(rectangle, text);
StackPane.setAlignment(text,Pos.TOP_CENTER);
stackPane.setAlignment(Pos.TOP_CENTER);
list.add(stackPane);
}
hBox.getChildren().addAll(list);
BorderPane borderPane = new BorderPane();
borderPane.setCenter(hBox);
これは、この代わりにコンテナとしてグループまたはペインを使用して絶対座標を
Scene scene = new Scene(borderPane, 1000, 800);
primaryStage.setTitle("Sorting");
primaryStage.setResizable(false);
primaryStage.setScene(scene);
primaryStage.show();
for (int i = 0; i < 12; i++) {
int centerx = (int) list.get(i).getLayoutX();
int centery = (int) list.get(i).getLayoutY();
CenterX.add(i,centerx);
CenterY.add(i,centery);
System.out.println(centerx);
System.out.println(centery);
}
グループを使用して形状間のギャップを設定するにはどうすればよいですか? @truejasonxiefans – happyeveryday
それは絶対的なcooridateにあるので。 2つの図形が重なっていれば、重なり合います。それは自分でコントロールを意味します。形状のサイズと位置を注意深く計算する必要があります。 – truejasonxiefans