JavaFx : Deaktivieren Teiler
Ich habe eine JavaFX Anwendung mit einem SplitPane. Ich möchte zum deaktivieren der Teiler auf SplitPane, so wäre es nicht möglich, seine Haltung zu ändern, wenn die Anwendung ausgeführt wird. Wie kann ich dies tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es keine API dafür, also wenn die Szene gezeigt wird, haben wir die Verwendung einer lookup-Funktion, die den Knoten durch seine id. In diesem Fall, die
Divider
hat diese id:split-pane-divider
.Sobald wir den Knoten finden, der, setzen wir es transparent zu Maus-events:
lookup
nur mit dem vorgesehenen splitPane enthält die Teiler, die Sie deaktivieren möchten.Keiner der obigen posts für mich gearbeitet. Ich fand diese Lösung die bei mir funktioniert:
Dieser code funktioniert für den Fall, wenn Ihr splitPane ist in der Mitte geteilt und hat nur einen Teiler, also der Trennlinie position eingestellt ist
0.5
. Wenn Sie nicht wissen, die position der Trennlinie, Sie können es durchdivider.getPosition();
.Dieser code ist in der
initialize()
- Methode der GUI-Controller-Klasse.Set mouseTransparent="true" von SplitPane in der Fxml-Datei.
Können Sie auch ändern, die Haut Klasse für SplitPane. Kopieren Sie einfach den code aus GrepCode für SplitPaneSkin (verfügbar hier) und entfernen Sie die MouseListeners in Methode initializeDivderEventHandlers() und auch die setCursor-Aufrufe in der Methode setGrabberStyle() und dann kann man nicht die Größe der Teilfenster durch ziehen der Trennlinie 😉 Am Ende haben Sie nur, um die Haut auf die SplitPane durch den Aufruf setSkin.