2017-02-03 3 views
0

Ich beschloss, benutzerdefinierte Schaltflächen mit Formen zu erstellen, die animiert sind. Also folgte ich einem Tutorial und hatte alles eingerichtet und es funktionierte richtig, bis ich ein paar andere Elemente in die Szene fügte. Ich sah, dass die Positionierungsmethoden, die ich für diese privaten Klassen verwendete, richtig waren, aber hinter den Kulissen hatte der Button eine andere Instanz mit den absoluten Werten, die ich in der Button-Klasse gesetzt hatte.Benutzerdefinierte Schaltfläche Positionierung

die Situation zu klären, das ist, wie es aussieht:

Der Kippschalter i bauen ein Kreis in einem Rechteck ist, das und ändert seine Farbe seinen Hintergrund bewegt, sobald es

geklickt wird

Und das ist, wie es reagiert:

enter image description here

Bedeutung, dass es die oberen Knöpfe

Blockierung verwenden ich die folgende Code-Snippet für sie:

private static class ToggleSwitch extends Parent { 

... 

public BooleanProperty switchedOnProperty() { 
    return switchedOn; 
} 

public ToggleSwitch() { 
    Rectangle background = new Rectangle(102, 52); 
    background.setArcWidth(50); 
    background.setArcHeight(50); 
    background.setFill(Color.WHITE); 
    background.setStroke(Color.LIGHTGRAY); 

    Circle trigger = new Circle(25); 
    trigger.setFill(Color.WHITE); 
    trigger.setStroke(Color.LIGHTGRAY); 

    // These two lines are my problem!! 
    trigger.setCenterX(26); 
    trigger.setCenterY(26); 
    ... 
} 
} 

ich weiß also nicht, wie die Position des Kreises setzen für sie im Rechteck und nicht „eine andere sein Instanz "blockiert meine Bewerbung.

Das muss das Problem sein, denn nach dem Entfernen von der Szene funktioniert alles gut.

Antwort

0

Das Problem war nicht in der Erstellung der Schaltflächen, sondern in der Art, wie ich sie zu einem Bereich hinzugefügt. Da ich nur ein normales Fensterobjekt als root-Fenster verwendet habe, um zwischen den Inhalten zu wechseln, steckte alles in der Position (0,0).

Lösung: Verwenden Sie BorderPane als Root-Bereich.

Verwandte Themen