JavaFX Horizontale Linie zur Scene binding

lam_tr

Top Contributor
Hallo zusammen,

kann ich irgendwie eine Linie im Verhältnis zur Scene die x bzw. y databinden?

Der nachfolgende Code demonstriert x-Achen und y-Achse soll auch kommen.
Auf jeden Fall, gibt es einen Weg Line.startXProperty mit Scene.Width/2 zu binden?

Theoretisch kann ich Line.startXProperty.bind(Scene.WithProperty) binden, da ich aber die Mitte von der X-Achse bestimmen möchte muss ich width/2 durch zwei machen.

Geht es auch irgendwie anders?

Code:
 import javafx.scene.Scene
import javafx.scene.shape.Line

class VerticalGridLine extends Line {
	
	Scene scene
	
	new(Scene scene) {
		this.scene=scene
		startX = scene.width/2
		startY = 0
		endX=scene.width/2
		endY=scene.height
	}
}

Viele Grüße lam
 
Brauchst du sowas in der art?
Java:
Line vline = new Line();
vline.startXProperty().bind(scene.widthProperty().divide(2));
vline.endXProperty().bind(scene.widthProperty().divide(2));
vline.setStartY(0);
vline.endYProperty().bind(scene.heightProperty());
 
Jawohl funktioniert einwandfrei, Danke!

Ich habe jetzt auf das RootComponent (Group)
ein scalex und scaley gesetzt auf Mausscrollen. Ich will damit zoomen, klappt soweit auch,
aber kann ich so machen dass die VerticalLine (Y-Achse) automatisch verlängert wird?
Beim #scale wird die Linie nämlich kleiner, was ich aber will ist dass sie immer am Randanfang bis Randende geht.

Code:
private setSceneEvents(Scene scene) {
	   scene.onScroll(event ->			
           double zoomFactor = 1.05;
            double deltaY = event.getDeltaY();
            if (deltaY < 0){
              zoomFactor = 2.0 - zoomFactor;
            }
			
            root.setScaleX(root.getScaleX() * zoomFactor);
	   root.setScaleY(root.getScaleY() * zoomFactor);
            event.consume();
}

    }
 

Zurück
Oben