【发布时间】:2020-05-20 18:16:06
【问题描述】:
我正在制作 JavaFX 应用程序,我有一个问题。我的应用程序有 6 个场景,在每个场景中我都复制并粘贴了负责通过鼠标移动场景的相同代码。这是我的代码:
//some class instance
public static double xOffset = 0;
public static double yOffset = 0;
scene.setOnMousePressed(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent mouseEvent) {
xOffset = mouseEvent.getSceneX();
yOffset = mouseEvent.getSceneY();
}
});
scene.setOnMouseDragged(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent mouseEvent) {
stage.setX(mouseEvent.getScreenX() - xOffset);
stage.setY(mouseEvent.getScreenY() - yOffset);
}
});
但我很好奇,有没有办法不在每个场景的每个控制器中复制/粘贴相同的代码?我可以做一些事情来编写这段代码并在每个控制器或类似的东西中引用它吗?
【问题讨论】:
-
为什么这些字段是
public和static? -
我试图停止在每个类中重复这些变量声明,至少这就是为什么它们是公共的和静态的。但无论如何,它并没有像我想要的那样工作。
-
我不明白如果所有不同场景的偏移量相同,它会如何工作?
-
我知道有些事情对你们中的许多人来说可能是显而易见的,但我只是 Java 的初学者。有错误请见谅。
-
字段应该总是
private。至少不是中等高级的静态的唯一用途是常量和public static void main(String[] args)方法。