Je cherche des façons de déplacer nodes
(dans mon cas un TextField
) ainsi que de les redimensionner.JavaFX - Redimensionner et/ou déplacer des nœuds (par exemple TextFields)
est Ci-dessous un exemple de base:
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();
}
}
Je veux TextField
pour changer largeur uniquement d'une manière du côté droit (il ressemble à une manière « glissante » (devient plus large) de gauche à la droite). Je pense que ma tentative est fausse, puisque je ne veux pas l'échelle, mais redimensionner il (la mise à l'échelle de la TextField
fonctionne bien). Ou est le seul moyen de changer la taille en créant une boucle, qui ajoute le montant i à la largeur pour chaque itération? L'autre Button
doit déplacer le TextField
. Cette fois, je pense que ma tentative est correcte, mais le code ne fonctionne pas, ce que je ne peux pas expliquer.
Quelqu'un pourrait m'aider ici? Je vous remercie.