kennt jemand eine Möglichkeit wie ich die Selektierung der TableView mit dem Chart verbinden kann. Ich kann bei dem Chart den SelectionChangeListener benutzen, mir fehlt bloß der Weg zu dem Chart. Es handelt es sich um die gleichen Daten. Über Chart#getData() bekomme ich leider die Infos nicht heraus.
Kurz gesagt ich will sobald ich eine Selektierung auf die TableView den Node auf dem Chart Hervorheben oder anzeigen lassen und umgekehrt.
Hm. Klingt trivial, ist es aber, glaube ich zumindest, nicht. Ideen hätte ich schon, aber ich denke, das wird nicht ganz ohne werden. Und aus Mangel an eigenem Code, der deinem Problem nahe kommen würde, kann ich dir wirklich nur ein paar Code-Schnipsel geben, mit den Ideen, die ich dazu hätte.
Ich suche mal etwas Code zusammen und poste ihn dann...
Was macht das Ding? Wenn du mit der Maus darüber gehst, wird der Mauszeiger ausgeblendet und statt des Kreises, der den Datenpunkt darstellt, wird ein Label angezeigt.
Was bringt dir das? Nun, erst mal nichts. Aber du könntest das dahingehend modifizieren, dass du statt der Kombination Label+Kreis nur Kreis+Kreis (z.B. mit dem Radii 2 und 3) anlegst und normalerweise nur den kleinen anzeigst.
Du könntest jetzt irgendwo dein selektiertes Objekt der Tabelle speichern (als Klassen-Variable):
Der HoveredThresholdNode müsste umgeschrieben werden und sollte vielleicht auch noch eine Referenz auf das dahinterliegende Modell-Objekt enthalten (wieder als finale Klassenvariable):
Java:
// [...]privatefinalObject localObject;privatefinalObjectProperty<Object> objectProperty;// Referenz auf das von obenprotectedHoveredThresholdNode(finalObject localObject,finalObjectProperty<Object> objectProperty,[... und weitere, wenn nötig ...]){this.localObject = localObject;this.objectProperty = objectProperty;finalCircle circle1 =newCircle(2);finalCircle circle2 =newCircle(3);
circle1.managedProperty().bind(circle1.visibleProperty());
circle1.visibleProperty().bind(objectProperty.isNotEqualTo(localObject));
circle2.managedProperty().bind(circle2.visibleProperty());
circle2.visibleProperty().bind(objectProperty.isEqualTo(localObject));// [...]}// [...]
Die Visible-Bindings sollten die Magie machen.
So. Das wäre meine Idee. Kannst ja mal berichten, ob es klappt oder nicht.
Grüsse
#edit: Das ich Object verwende, liegt nur daran, dass ich deine Modellklasse ja nicht kenne.
Vielen Dank dzim, das Beispiel mit dem Threshold habe ich auch schon gefunden, fand das leider etwas gefrimmel für das was ich wollte. Aber ich denke ich komme da nicht drum rum.