堆栈中的JavaFx窗格未响应MouseTransparent或PickOnBounds
我有一个SplitPane和一个Pane在一个堆栈中。窗格位于堆栈中的SplitPane下方,中间的SplitPane是透明的锚烷。我的意图是,当我单击中心窗格区域内的某个位置时,在基础窗格上绘制一个圆圈来触发事件,但我无法通过单击窗格来触发事件 (编辑:此鼠标事件应该来自窗格,而不是主播,因为我还需要绘制的形状来响应单击。) 我在这里读过关于这方面的帖子,大多数解决方案包括捕鼠器和PickOnBounds。我尝试过中央锚烷、标签子对象和需要绘制圆圈的底层窗格上的所有属性的组合,但都无济于事。欢迎任何帮助!:) 以下是场景生成器中物理布局和层次的两个图像。蓝色显示的是底层窗格。它是可见的,因为中心锚烷是透明的 更新:当使用类似鼠标的e进入/退出中心定位窗格时,可以对前景分割窗格使用setMouseTransparent(真/假)。G这: 控制器类:堆栈中的JavaFx窗格未响应MouseTransparent或PickOnBounds,java,javafx,mouseclick-event,Java,Javafx,Mouseclick Event,我有一个SplitPane和一个Pane在一个堆栈中。窗格位于堆栈中的SplitPane下方,中间的SplitPane是透明的锚烷。我的意图是,当我单击中心窗格区域内的某个位置时,在基础窗格上绘制一个圆圈来触发事件,但我无法通过单击窗格来触发事件 (编辑:此鼠标事件应该来自窗格,而不是主播,因为我还需要绘制的形状来响应单击。) 我在这里读过关于这方面的帖子,大多数解决方案包括捕鼠器和PickOnBounds。我尝试过中央锚烷、标签子对象和需要绘制圆圈的底层窗格上的所有属性的组合,但都无济于事。欢
package sample;
import javafx.fxml.FXML;
import javafx.scene.control.SplitPane;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Ellipse;
public class Controller {
@FXML
private Pane
backgroundPane;
@FXML
private SplitPane
foregroundSplitPane;
@FXML
public void handleBackgroundPaneOnMouseClick() {
// Create and add an ellipse:
Ellipse ellipse = new Ellipse();
ellipse.setRadiusX(50);
ellipse.setRadiusY(50);
ellipse.setFill(Color.BLACK);
ellipse.setLayoutX((backgroundPane.getWidth() / 2));
ellipse.setLayoutY((backgroundPane.getHeight() / 2));
backgroundPane.getChildren().add(ellipse);
}
@FXML
public void handleCenterAnchorPaneOnMouseEntered() {
foregroundSplitPane.setMouseTransparent(true);
}
@FXML
public void handleCenterAnchorPaneOnMouseExited() {
foregroundSplitPane.setMouseTransparent(false);
}
}
FXML文件:
是的,这是可行的,但我意识到我最初的问题不太清楚。我尝试的是让位于下方的窗格成为检测单击的窗格。现在它正被中间的锚烷堵住。我可以让anchorpane在窗格中绘制项目,但这会有点麻烦。很抱歉理解错误。我做了一个更新。现在能用了吗?你希望它怎么用?谢谢!鼠标悬停透明似乎是一个公平的方法。我要试试看!