2017-06-25 6 views
0

Da Sie ein ContextMenu in JavaFX mit den Pfeiltasten navigieren können, gibt es eine Möglichkeit, das aktuell markierte/ausgewählte MenuItem abzurufen?JavaFX Gewähltes Element eines ContextMenu?

Ich bin im Grunde versucht, eine automatische Vervollständigen-Funktion wie Outlook usw. mit E-Mail-Adressen zu erstellen, wo Sie beginnen zu tippen und es gibt Vorschläge, die Sie drücken können, um die ausgewählte Menüaktion alle ohne die Maus einzugeben.

Jede Hilfe wird geschätzt, danke.

+0

Ich würde wahrscheinlich versuchen, dies mit einem 'ListView' in einem' Popup' zu implementieren. Dann gibt Ihnen das Standardauswahlmodell in der Listenansicht, was Sie brauchen. –

Antwort

0

Verwenden Sie stattdessen eine Kombinationsfeld. es gibt Ihnen eine Dropdown-Liste und ein optionales Textfeld. Kontextmenü ist ein Menüelement, und Sie können ein Auswahlmodell nur implementieren, wenn Sie es in Listenansicht oder Tabellenansicht umbrechen.

+0

Meinst du beispielsweise eine ListView erstellen und dann ein neues CustomMenuItem (ListView) verwenden, um die Liste anzuzeigen? Das Problem, das damit verbunden ist, ist, dass ich eine Fokusänderung vom TextField verlangen müsste, was nicht das ist, was ich möchte. Mit einem Kontextmenu kann ich navigieren, während ich mich immer noch auf das TextField konzentriere und so weiter tippe. Wenn ich ein ListView umschließe, wird entweder die Listview fokussiert (erfordert einen Klick) ODER das TextField. –

+0

Meinem Wissens nach hat das Kontextmenü eine begrenzte Ereignisbehandlung. Sie können nicht den Fokus auf den Menüeintrag oder das Kontextmenü selbst hören. Dies macht es für die Anwendung schwierig zu erkennen, welcher Gegenstand fokussiert ist. –

+0

Gibt es keine Möglichkeit, dies herauszufinden, indem Sie die Klasse erweitern? Oder indem Sie das Stylesheet prüfen, um zu sehen, ob ein MenuItem ein fokussiertes Attribut hat? –