- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个程序,其中在 Pane 中拖动了 2 个圆圈。还有一条线连接它们,上面显示距离。我的问题在于,当我用鼠标缓慢拖动圆圈时,它们移动得很好,但当我更快地移动圆圈时,圆圈停止了。
这里是计算圆阻力的地方
pane.setOnMouseDragged(e -> {
if (circle1.contains(e.getX(), e.getY())) {
pane.getChildren().clear();
circle1.setCenterX(e.getX());
circle1.setCenterY(e.getY());
pane.getChildren().addAll(getLine(circle1, circle2), circle1,
circle2, getText(circle1, circle2));
}
else if (circle2.contains(e.getX(), e.getY())) {
pane.getChildren().clear();
circle2.setCenterX(e.getX());
circle2.setCenterY(e.getY());
pane.getChildren().addAll(getLine(circle1, circle2), circle1,
circle2, getText(circle1, circle2));
}
});
最佳答案
我认为发生的事情是,当鼠标快速移动时,处理两个连续事件之间移动的距离超出了圆圈的范围,因此 if 条件变为假。您可能需要在圆圈本身而不是 Pane 上注册鼠标处理程序。 (顺便说一句,为什么要清除并重建 Pane ,而不是只更新行?)
下面是一个使用这些技术的例子:
import javafx.application.Application;
import javafx.beans.property.ObjectProperty;
import javafx.beans.property.SimpleObjectProperty;
import javafx.geometry.Point2D;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.scene.shape.Line;
import javafx.stage.Stage;
public class DraggingCircles extends Application {
@Override
public void start(Stage primaryStage) {
Pane pane = new Pane();
Circle circle1 = createDraggingCircle(50, 50, 25, Color.BLUE);
Circle circle2 = createDraggingCircle(350, 350, 25, Color.RED);
Line line = new Line();
line.startXProperty().bind(circle1.centerXProperty());
line.startYProperty().bind(circle1.centerYProperty());
line.endXProperty().bind(circle2.centerXProperty());
line.endYProperty().bind(circle2.centerYProperty());
pane.getChildren().addAll(circle1, circle2, line);
Scene scene = new Scene(pane, 400, 400);
primaryStage.setScene(scene);
primaryStage.show();
}
private Circle createDraggingCircle(double x, double y, double radius, Color fill) {
Circle circle = new Circle(x, y, radius, fill);
ObjectProperty<Point2D> mouseLocation = new SimpleObjectProperty<>();
circle.setOnMousePressed(e -> {
mouseLocation.set(new Point2D(e.getX(), e.getY()));
});
circle.setOnMouseDragged(e -> {
double deltaX = e.getX() - mouseLocation.get().getX();
double deltaY = e.getY() - mouseLocation.get().getY();
circle.setCenterX(circle.getCenterX() + deltaX);
circle.setCenterY(circle.getCenterY() + deltaY);
mouseLocation.set(new Point2D(e.getX(), e.getY()));
});
return circle ;
}
public static void main(String[] args) {
launch(args);
}
}
关于java - 在 JavaFX 中拖动的圆圈落后于光标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36025671/
let config = [{ name: 1, state: 1, output: 'Y', }, { name: 2, state: 1, outp
我在使用 C# 统一编程时遇到了一些问题。我试图在开始游戏时请求一个插页式广告,这样我就可以在玩家死亡 5 次时显示它。问题是,当我遇到第 5 次死亡时,广告将不会显示。当我尝试在关卡开始时请求广告时
我有 JPanel,从中打开一个扩展 AbstractAIFDialog 的搜索条件对话框。它由搜索条件文本字段、结果 TableView 和搜索按钮组成。单击“搜索”后,在此对话框中,我需要显示进度
所以,我的蛇做了连续的运动,但如果我按任意键,它就会及时倒退并前后滞后。这是视频:https://youtu.be/KCesu5bGiS8 我的猜测是更快地更新按键输入,但是当我这样做时,所有内容都会
我正在尝试获得 TODAY THE CURRENT 的所有选票,并且我几乎已经通过以下 mysql 查询实现了这一点,但是有一个问题。 这段代码让我获得了今天的选票: SELECT COUNT(*)
我正在使用 RS256 算法生成 Azure AD token 。 当我解码 https://jwt.io/ 中的 token 时发出的时间比请求时间晚了 5 分钟。 请求的时间:美国标准时间晚上 9
当我查询 NOW() 时,mysql 返回的时间与服务器上的当前时间相差大约 -30 秒。有任何想法吗?我尝试查看配置文件,但一无所获。我正在运行 5.1.37 版本 SELECT NOW() 最佳答
我正在做一个开源项目。我首先 fork 这个项目,将它克隆到我的机器上,然后直接在 master 分支上进行了更改。我提交了这些更改并将其推到我的 fork 上。然后我打开了该更改的 pull 请求。
所以我用了大约 20 分钟写出了这个程序,并花了最后 40 分钟绞尽脑汁地想为什么它返回 21131 而不是 21124,这似乎是正确的答案。我知道代码没有问题(很可能),因为它适用于我测试的每个数字
我在使用 QueryDsl 日期算法时遇到问题。它对我不起作用,会引发以下错误: Caused by: org.postgresql.util.PSQLException: ERROR: functi
嗨,我正在玩 Angular ui 时间选择器 http://angular-ui.github.io/bootstrap/ 当我使用它时,我的日期晚了 1 小时,我该如何更改它以及为什么? JS
我是一名优秀的程序员,十分优秀!