Ceci est juste l'une des nombreuses façons comment faire cela.
MainView.fxml
, un simple vue contenant un bouton, et cliquez sur le bouton l'étiquette doit être déplacé de droite à gauche et vice-versa (voir la déclaration onMousePressed
):
<fx:root type="BorderPane" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1">
<left>
<VBox fx:id="lefty">
<Label fx:id="switchy" text="Switching text"></Label>
</VBox>
</left>
<center>
<Button fx:id="switchBtn" text="Switch" onMousePressed="#switchButtonPressed"></Button>
</center>
<right>
<VBox fx:id="righty">
</VBox>
</right>
</fx:root>
Le contrôleur MainView.java
avec son gestionnaire d'événements switchButtonPressed
:
public class MainView extends BorderPane {
@FXML private VBox lefty;
@FXML private VBox righty;
@FXML private Label switchy;
public MainView() {
URL fxmlFile = MainView.class.getResource("MainView.fxml");
FXMLLoader fxmlLoader = new FXMLLoader(fxmlFile);
fxmlLoader.setRoot(this);
fxmlLoader.setController(this);
try {
fxmlLoader.load();
} catch (IOException e) {
e.printStackTrace();
}
}
public void switchButtonPressed(MouseEvent mouseEvent) {
if(lefty.getChildren().contains(switchy)) {
lefty.getChildren().remove(switchy);
righty.getChildren().add(switchy);
} else {
righty.getChildren().remove(switchy);
lefty.getChildren().add(switchy);
}
}
}
Vous voyez, je vérifie simplement sur le bouton cliquez si l'étiquette est sur le côté gauche. Si c'est le cas, retirez-le sur le côté gauche et ajoutez-le sur le côté droit. Analogue, si c'est sur le côté droit, retirez-le et ajoutez-le sur le côté gauche.
Donc, en gros, vous voulez déplacer un certain 'Node' d'un 'Parent' à un autre' Parent', c'est-à-dire, le retirer dans le premier 'Parent' et l'ajouter au second' Parent'? –
@MarkusWeninger oui, mais je n'ai aucune idée comment faire aussi bien que clair que parent où je veux charger cet enfant fxmll fichier – Rocky
J'ai ajouté une réponse. c'est ce que tu veux? –