J'essaie juste d'apprendre JavaFX et mon objectif est de faire en sorte que le diviseur splitpane se déplace complètement vers la droite si le bouton "Hide Terminal" est cliqué. Voici ce que j'ai configuré dans Scene Builder: Sur événement Moused Clicked non déclenché à partir de JavaFX FXML
J'ai essayé d'ajouter du code à la méthode initialise() et je peux confirmer qu'il s'exécute.
Voici le code qui est censé être déclenché à partir de l'événement Clicked souris:
@FXML
void terminalHideShow(MouseEvent event) {
terminalHideShowButton.rotateProperty().setValue(180.0);
terminalCommandListOutput.getItems().add("TEXT"); // a test
if(mainWindow.getDividerPositions()[0] > 0.99)
{
mainWindow.setDividerPositions(0.7);
terminalHideShowLabel.setText("Hide Terminal");
}
else
{
mainWindow.setDividerPositions(1.0);
terminalHideShowLabel.setText("Show Terminal");
}
}
Le FXML lui-même:
<Label alignment="CENTER_RIGHT" contentDisplay="RIGHT" nodeOrientation="LEFT_TO_RIGHT" text="Hide Terminal" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<graphic>
<ImageView fx:id="terminalHideShowButton" accessibleRole="BUTTON" onMouseClicked="#terminalHideShow" rotate="180.0">
<image>
<Image url="@../images/angle-right-circle.png" />
</image>
</ImageView>
</graphic>
</Label>
Votre logique ne va-t-elle pas en sens inverse? Vous avez "si la position du diviseur est supérieure à 0,99, réglez-le sur 1" (qui ne peut jamais le déplacer plus de 0.01) et "sinon placez-le à 0.7". –
@James_D bon ramassage, merci –