Je souhaite remplir un Pane varPane
avec un contenu variable. La mise en œuvre ressemble à ceJavaFX: Trigger on Pane non visible/détruit
Pane varPane = new Pane();
// ..
someProperty.addListener((obsv, oldV, newV) -> {
varPane.getChildren().clear(); // Remove old Property Pane Content
Pane propPane = getNewPane(newV); // Get new content
varPane.getChildren().add(propPane); // add Content
});
Le volet est généré comme:
public Pane getNewPane(Object newV){
Pane myPane = new Pane();
// Add dummy Content
myPane.getChildren().add(new Label(newV.toString()))
// Here I need some listener
// somthing like [not working]:
myPane.setOnClosed(System.out.println("Pane closed: " + newV.toString());
return myPane;
}
Comme indiqué plus haut, je dois effectuer un nettoyage après le volet n'est plus utilisé. Cependant, je ne pouvais pas trouver de manière correcte de mettre en œuvre un tel auditeur.
L'auditeur doit être déclenchée si:
- le contenu de
varPane
est changé et l'ancien volet n'est plus visible, OU - si
varPane
est détruit (par exemple surPlatform.exit()
)
Je pourrais exiger que sur ces événements une fonction soit appelée pour le nettoyage. Cependant, je pense que ce serait plus sûr, si le volet détecte de tels événements par lui-même.