我正在尝试使我的JavaFX透明子窗口可以通过Controller (和FXML)拖动。 我已经通过AnotherWindow.java使它成为可拖动的那样:
public class AnotherWindow {
double yOffset; double xOffset;
Stage anotherStage = new Stage();
public AnotherWindow(String fxml) {
try {
Parent root = (Parent) FXMLLoader.load(getClass().getResource(fxml));
Scene scene = new Scene(root);
scene.getStylesheets().add(getClass().getResource("../application/application.css").toExternalForm());
scene.setOnMousePressed(event -> {
if(event.)
xOffset = anotherStage.getX() - event.getScreenX();
yOffset = anotherStage.getY() - event.getScreenY();
});
scene.setOnMouseDragged(event -> {
anotherStage.setX(event.getScreenX() + xOffset);
anotherStage.setY(event.getScreenY() + yOffset);
});
anotherStage.setResizable(false);
anotherStage.setAlwaysOnTop(true);
anotherStage.setScene(scene);
anotherStage.setTitle("Control Panel(AutoClicker)");
anotherStage.getScene().setFill(Color.TRANSPARENT);
anotherStage.initStyle(StageStyle.TRANSPARENT);
anotherStage.show();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
我想让它可以通过Controller进行拖动的原因是我想通过拖动按钮而不是拖动整个场景/窗口来移动窗口。
希望你能帮助我! (抱歉我的英语不好,我很年轻) 〜亨利