我正在尋找移動nodes
(在我的情況下爲TextField
)以及調整它們的大小的方法。JavaFX - 調整大小和/或移動節點(例如TextFields)
下面是一個基本的例子:
public class Main extends Application{
private static final Pane pane = new Pane();
public void start(Stage stage) {
TextField txtField = new TextField();
txtField.relocate(300, 0);
Button btnS = new Button("Change size");
btnS.setPrefSize(100, 20);
btnS.relocate(0, 0);
btnS.setOnAction(e -> {
ScaleTransition transition = new ScaleTransition(Duration.millis(300), txtField);
transition.setByX(2);
transition.play();
});
Button btnP = new Button("Change Position");
btnP.setPrefSize(100, 20);
btnP.relocate(110, 0);
btnP.setOnAction(e -> {
PathTransition transition = new PathTransition();
transition.setNode(txtField);
transition.setPath(new Path(new MoveTo(300, 50)));
transition.play();
});
pane.getChildren().addAll(btnS, btnP, txtField);
Scene scene = new Scene(pane);
pane.setPrefSize(500, 100);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch();
}
}
我想TextField
改變it's寬度只有右側(所以它看起來像it's「滑動體」(自左而變得更寬)正確的)。我認爲我的嘗試是錯誤的,因爲我不想調整它,但調整大小它(它的縮放TextField
工程儘管)。 或者是通過創建一個循環來改變尺寸的唯一方法,它將每次迭代的量增加到寬度上?
其他Button
應該移動TextField
。這一次我認爲我的嘗試是正確的,但是代碼不起作用,我無法解釋。
會有人幫我在這裏嗎?謝謝。