【发布时间】:2017-12-21 14:00:19
【问题描述】:
代码是用 JavaFX 编写的。
我有一个根面板,上面有一个VBox。 VBox里面有很多小面板。
我想单击一个按钮,将一个小面板添加到VBox,然后在新面板上弹出一个消息对话框。
button.setOnAction(() -> {
Node selectPanel = new Node();
vbox.getChildren().add(selectPanel);
Bounds bounds = selectPanel.localToScreen(selectPanel.getBoundsInLocal());
showMessage(bounds);
});
但是消息没有显示在新面板的位置。
我调试代码并发现边界是根面板(或 vbox)的左上角。有人能告诉我如何获得新面板的正确坐标吗?
【问题讨论】:
-
Node是抽象的,所以Node selectPanel = new Node();不会编译,所以你必须实现你自己的Node类。 lambda 表达式也是错误的,因为它没有参数。请仅发布可编译的代码。