当前位置: 首页 > 知识库问答 >
问题:

在JavaFX2中移动未修饰的舞台

万俟嘉珍
2023-03-14
    null
@FXML
protected void onRectanglePressed(MouseEvent event) {
    X = primaryStage.getX() - event.getScreenX();
    Y = primaryStage.getY() - event.getScreenY();
}

@FXML
protected void onRectangleReleased(MouseEvent event) {
    primaryStage.setX(event.getScreenX());
    primaryStage.setY(event.getScreenY());
}

@FXML
protected void onRectangleDragged(MouseEvent event) {
    primaryStage.setX(event.getScreenX() + X);
    primaryStage.setY(event.getScreenY() + Y);
}

共有1个答案

傅阳炎
2023-03-14

我在一个未装饰的窗口中创建了一个动画时钟的示例,您可以拖动它。

示例中的相关代码如下:

// allow the clock background to be used to drag the clock around.
final Delta dragDelta = new Delta();
layout.setOnMousePressed(new EventHandler<MouseEvent>() {
  @Override public void handle(MouseEvent mouseEvent) {
    // record a delta distance for the drag and drop operation.
    dragDelta.x = stage.getX() - mouseEvent.getScreenX();
    dragDelta.y = stage.getY() - mouseEvent.getScreenY();
  }
});
layout.setOnMouseDragged(new EventHandler<MouseEvent>() {
  @Override public void handle(MouseEvent mouseEvent) {
    stage.setX(mouseEvent.getScreenX() + dragDelta.x);
    stage.setY(mouseEvent.getScreenY() + dragDelta.y);
  }
});

...

// records relative x and y co-ordinates.
class Delta { double x, y; } 

代码看起来与您的代码非常相似,所以不太确定为什么您的代码不适合您。

 类似资料:
  • 这是我使用JavaFX的第二天,如果这似乎是一个太常见的知识问题的话。提前谢谢大家。 ..

  • 我对may e(fx)clipse应用程序有问题。我想在应用程序启动时显示一个启动屏幕。我成功地创建了实现StartupProgressTrackerService的类,并调用了我的stateReach方法。然而,我对javafx本身有问题。我想用StageStyle创建Stage。未装饰。然而,当我调用stage时。show()方法阶段不会立即渲染,并在创建主窗口后立即显示。它可以很好地工作,例

  • 我有一个未装饰的FXML舞台。我创建了一个按钮来最小化窗口,并在初始化方法的控制器类中为其创建了一个事件。 问题: 返回,而窗口在视觉上没有任何变化。 如果我从UNDECORATED切换到默认,我的自定义按钮完全有效。

  • 问题内容: 我试图发出Windows PC Toast通知。现在,我混合使用了Swing和JavaFX,因为我没有找到使用FX制作未修饰窗口的方法。我更喜欢只使用JavaFX。 那么,如何制作未装饰的窗户? 编辑: 我发现您可以直接使用创建舞台。 现在我所需要知道的是如何初始化工具箱,以便可以在中调用我的方法。(其中) 我通常会打电话给我,但是这使我无法创建和初始化。 那么,如何做这些事情以允许我

  • 问题内容: 如何为未装饰的jframe添加阴影? 从我在网上找到的内容中,您也许可以将jframe添加到另一个黑色 半透明窗口中以产生阴影效果。或者以某种方式将 这样的内容应用于JFrame: 我只是想知道最好的方法,或者是完全不同的 方法来获得相同的效果,例如从另一个类而不是从 jframe扩展。我是Java的新手,所以我可能走错了方向,因此欢迎您提出任何 建议。 问题答案: 基本上,您需要制作

  • 问题内容: 好吧,所以我目前正在解析RSS feed。我已经获得了我没有问题的数据,剩下的只是解析游戏名称。 这是我当前拥有的代码(忽略草率,这只是概念的证明): 一切都很好,但是随后我开始出现此错误: 我剩下的唯一一件事就是剔除结束锚标签和句点,但是我似乎无法弄清楚为什么它不喜欢’+’。有任何想法吗? 编辑:这不应被标记为重复,因为在另一个问题问了两年之前就被问到了。 问题答案: 您需要在PHP