Java11+ JavaFX HtmlEditor ContextMenu neue MenuItems hinzufügen

Christopher25

Bekanntes Mitglied
Hallo Zusammen.

Ab Java11 wurden ja die "sun" libs etc. entfernt/unbenannt etc. oder unzugänglich gemacht.
So leider auch die Klasse "ContextMenuContent".
Diese brauch ich jedoch um das Default ContextMenu von dem Javafx HtmlEditor zu erweitern mit neuen MenuItems.
Wenn ich ja ein eigenes ContextMenu setze dann wird ja leider der default überschrieben.

Weiß vielleicht jemand eine effektive Möglichkeit dem HtmlEditor's default-ContextMenu beizubehalten aber neue Items hinzuzufügen?
Ich habe schon ausprobiert das ganze per listener "setOnContextMenuRequested" probiert. Leider scheint dies aber zu früh zu sein, als dass das ContextMenu schon existieren würde.
 
Also das Problem ist durchaus nicht trivial. Aber erst einmal: Es wurde einiges umgestellt, aber die Funktionalitäten / Klassen gibt es immer noch. T
So z.B. ist ContextMenuContent über das Modul javafx.controls zu finden:

Ich vermute, dass Du früher diesen "Workaround" über die eigene Skin Klasse gegangen bist. Dieser Weg ist so aber nicht mehr möglich, da dies aus den Skin geflogen ist.

Generell ist der große Vorteil aber: Es ist alles OpenSource und man kann sich da also einiges anschauen und machen.

Ist der Nachbau des Context Menüs denn eine Option?

Ansonsten bleibt unter dem Strich nur eine genaue Analyse des Source Codes um ggf. doch noch einen Ansatzpunkt zu finden. Das war mir jetzt so ganz auf die Schnelle nicht möglich. Aber über die Skin bekommt man z,B. das WebView Control und kann da dann das eine oder andere schon machen. (Teilweise mit reflection ... sehr unschön. Daher ist immer die Frage: Was soll mit dem "Feature" erreicht werden? Gibt es da ggf. weitere Ideen um das zu erreichen, was einem da derzeit an Funktionalität fehlt?)

Das wäre so meine Sicht darauf.
 
Also das Problem ist durchaus nicht trivial. Aber erst einmal: Es wurde einiges umgestellt, aber die Funktionalitäten / Klassen gibt es immer noch. T
So z.B. ist ContextMenuContent über das Modul javafx.controls zu finden:

Ich vermute, dass Du früher diesen "Workaround" über die eigene Skin Klasse gegangen bist. Dieser Weg ist so aber nicht mehr möglich, da dies aus den Skin geflogen ist.

Generell ist der große Vorteil aber: Es ist alles OpenSource und man kann sich da also einiges anschauen und machen.

Ist der Nachbau des Context Menüs denn eine Option?

Ansonsten bleibt unter dem Strich nur eine genaue Analyse des Source Codes um ggf. doch noch einen Ansatzpunkt zu finden. Das war mir jetzt so ganz auf die Schnelle nicht möglich. Aber über die Skin bekommt man z,B. das WebView Control und kann da dann das eine oder andere schon machen. (Teilweise mit reflection ... sehr unschön. Daher ist immer die Frage: Was soll mit dem "Feature" erreicht werden? Gibt es da ggf. weitere Ideen um das zu erreichen, was einem da derzeit an Funktionalität fehlt?)

Das wäre so meine Sicht darauf.
Danke dir für deine Antwort. Werde ich in den kommenden Tagen mal ausprobieren. Hatte bis jetzt leider keine Zeit dazu gefunden.
Warum werden die eigentlich so wichtige Sachen einfach raus 😀 versteh ich irgendwie net wirklich.
Genauso wie die bei Regex die named-groups einfach nicht public machen, kann ich auch nicht verstehen.
 
Danke dir für deine Antwort. Werde ich in den kommenden Tagen mal ausprobieren. Hatte bis jetzt leider keine Zeit dazu gefunden.
Warum werden die eigentlich so wichtige Sachen einfach raus 😀 versteh ich irgendwie net wirklich.
Genauso wie die bei Regex die named-groups einfach nicht public machen, kann ich auch nicht verstehen.
sie haben auch in javafx den ladebildschirm package private gemacht ... jetzt ist der nur noch über eine system property zugänglich... oracle things i guess
 

Zurück
Oben