Ich benötige einen Auswahllistener und wähle Methode in einem Bereich aus, um eine Hervorhebung zu überwachen und anzuzeigen, wenn auf einen Knoten geklickt wird.Hinzufügen einer benutzerdefinierten Komponente zu SceneBuilder 2.0
tat ich folgendes:
public class PaneWithSelectionListener extends Pane {
private ObjectProperty<Annotation> selectedAnnotation = new SimpleObjectProperty<>();
public PaneWithSelectionListener() {
super();
selectedAnnotation.addListener((obs, oldAnno, newAnno) -> {
if (oldAnno != null) {
oldAnno.setStyle("");
}
if (newAnno != null) {
newAnno.setStyle("-fx-border-color: blue;-fx-border-insets: 5;-fx-border-width: 1;-fx-border-style: dashed;");
}
});
setOnMouseClicked(e->selectAnnotation(null));
}
public void selectAnnotation(Annotation ann){
selectedAnnotation.set(ann);
}
}
Und dies funktioniert gut - aber ich bin mit SceneBuilder arbeiten mehr seit meiner FXML Referenzen diese PaneWithSelectionListener anstatt die Scheibe nicht in der Lage. Ich bin mir nicht sicher, wie ich mein benutzerdefiniertes Fenster in SceneBuilder bringen kann. Ich habe mir andere Fragen angeschaut und sie sind alle eine Kombination aus FXML und Controllern - wo dies nur ein Fenster ist.
Kennt jemand eine Möglichkeit, dies zu tun, oder vielleicht die Scheibe für einen PaneWithSelectionListener bei der Initialisierung auszutauschen?
Dank
Brauchen Sie nur eine einzige Auswahl? –
Ja - Einzige Auswahl ist alles was ich brauche. Ich stelle Anmerkungen auf einem Bild dar. Wenn der Benutzer auf einen klickt - sollte er auswählen. Ich glaube nicht, dass sie mehrere Auswahlmöglichkeiten brauchen. Nur ein Indikator, welcher davon betroffen sein wird. Vielen Dank. –