Wählen und verschieben Sie einen Knoten in einem pannablen / zoombaren Bereich

9

Ich versuche, ein paar Komponenten in einem ScrollPane zu platzieren. Diese Komponenten sollten über diesen Bereich mit der Maus verschoben werden können (klicken und ziehen). Das ScrollPane selbst ist pannable und zoombar.

Wenn ich jetzt einen von ihnen auswähle und ihn an eine neue Position ziehe, ist die Maus schneller als die Komponente, wenn ich herausgezoomt habe. Beim Vergrößern wird die Komponente schneller als die Mausbewegung verschoben.

Wenn nicht gezoomt, funktioniert es, bis ich eine bestimmte Position erreiche, an der das ScrollPane automatisch schwenkt.

Es muss etwas mit den ermittelten Koordinaten der Knoten zu tun haben. Hat jemand eine Idee, was ich hinzufügen muss, damit es richtig funktioniert?

Meine Controller-Klasse:

%Vor%

Die Knotenklasse:

%Vor%

und die fxml:

%Vor%     
Moh-Aw 26.08.2015, 07:07
quelle

2 Antworten

3

Da noch niemand geantwortet hat, hier ist ein Code. Ich will nicht in deine graben und das Rad neu erfinden.

Sie können Knoten verschieben, indem Sie mit der linken Maustaste ziehen, den Bereich mit dem Mausrad skalieren und den Bereich mit der rechten Maustaste schwenken. Kein ScrollPane benötigt. Wenn Sie jedoch ScrollBars möchten, können Sie sie immer hinzufügen, wenn Sie sie bevorzugen.

Der Code:

%Vor%

Lass es mich wissen, wenn dir das überhaupt nicht hilft, dann lösche ich den Beitrag. Das Kopfgeld interessiert mich nicht.

    
Roland 05.09.2015, 17:01
quelle
0

Ich werde nur eine Antwort posten, um die Lösung für mein Problem zusammenzufassen:

Das Problem, warum meine Knoten hinterherhinken, liegt darin, dass sie keine Ahnung von der Skalierung hatten, die in der darüber liegenden Ebene aufgetreten sein könnte. Als letzte Lösung habe ich meinen Code mit Rolands Antwort gemischt. Wenn jemand weitere Optimierungen im Sinn hat, bitte posten Sie diese.

Controller-Klasse:

%Vor%

Die Leinwand:

%Vor%

Knoten:

%Vor%     
Moh-Aw 08.10.2015 10:48
quelle

Tags und Links