1 pièce(s) jointe(s)
centrer un cercle en utilisant le binding
Salut,
essayant de center un cercle en utilisant le binding, Voici mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| import javafx.application.Application;
import javafx.beans.binding.Bindings;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.shape.Circle;
import javafx.stage.Stage;
/**
*
* @author
*/
public class Test extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage) throws Exception {
Circle c = new Circle();
Group root = new Group(c);
Scene scene = new Scene(root, 100, 100);
c.centerXProperty().bind(scene.widthProperty().divide(2));
c.centerYProperty().bind(scene.heightProperty().divide(2));
c.radiusProperty().bind(Bindings.min(scene.widthProperty(),
scene.heightProperty())
.divide(2));
c.radiusProperty().addListener((obs, old, nw) -> {
System.out.println(" oldRadius = "+old + ", newRadius = "+nw );
});
stage.setTitle("Binding in JavaFX");
stage.setScene(scene);
stage.sizeToScene();
stage.show();
}
} |
Après exécution, voici les captures d'écrans obtenus:
Quand le programme est initialement lancé:
http://i.stack.imgur.com/HsbVD.jpg
à noter que la circonférence ne touche pas le coté droit.
Quand la fenêtre est maximisé puis restauré:
Pièce jointe 197960
ICI, la circonférence ne touche pas le coté droit et le coté gauche.
Question,
pour quoi ce programme n'arrive pas center le cercle correctement?