如何解决JavaFX:根据圆心更新双打
我正在构建一个 GUI 界面,其中有一个可以拖动的圆圈。圆的顶部是显示圆心当前 x 和 y 坐标总和的文本。
唯一的问题是显示的数字在我移动它们时保持不变。这些值开始于根据圆在开始时的位置进行的计算,但不会随着圆的移动而改变。正如您可能猜到的那样,我希望它显示随着圆圈被拖动和计算完成而变化的数字。
代码:
mounted
我知道我应该找到一种方法将圆的当前位置绑定到双精度值。我需要双精度值来计算总和。我只需要在拖动圆圈时更新 x 和 y 值。我在这里画一个空白。
解决方法
您可以让事件处理程序更新文本:
circle.setOnMouseDragged(e -> {
circle.setCenterX(e.getX());
circle.setCenterY(e.getY());
addCoordinates.setText(e.getX() +"-"+e.getY());
});
或者使用绑定:
Label addCoordinates = new Label();
addCoordinates.layoutXProperty().bind(circle.centerXProperty());
addCoordinates.layoutYProperty().bind(circle.centerYProperty());
SimpleStringProperty centerX = new SimpleStringProperty();
centerX.bind(Bindings.createStringBinding( ()->String.valueOf(circle.centerXProperty().get()),circle.centerXProperty()));
SimpleStringProperty centerY = new SimpleStringProperty();
centerY.bind(Bindings.createStringBinding( ()->String.valueOf(circle.centerYProperty().get()),circle.centerYProperty()));
addCoordinates.textProperty().bind(Bindings.concat(centerX,"-",centerY));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。