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 wirdUnd das ist, wie es reagiert:
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.