我有一个 JavaFX 没有装饰的场景,其中包含鼠标事件的处理程序,例如 Moved、Pressed 和 Dragged,以实现寡妇调整大小和移动。窗口的根窗格是 AnchorPane。
问题在以下。当我将 ScrollPane 添加到根窗格时,我无法为用户提供窗口大小调整,因为滚动 tad 正在处理鼠标事件。我也无法通过使上窗格鼠标可遍历并尝试将鼠标事件从根窗格向后退到上层来实现此功能。
你能帮忙找到解决这个问题的方法吗?强烈要求使用未装饰的窗口并使用滚动窗格区域。
谢谢!
根窗格代码:
<AnchorPane fx:id="mainPanelRoot" prefHeight="700.0" prefWidth="1020.0"
xmlns:fx="http://javafx.com/fxml"
fx:controller="com.intellijustice.ui.controllers.IntelliJusticeController">
<children>
<AnchorPane fx:id="mainPanel" focusTraversable="true"
AnchorPane.bottomAnchor="32.0"
AnchorPane.leftAnchor="32.0"
AnchorPane.rightAnchor="32.0"
AnchorPane.topAnchor="32.0"
onKeyPressed="#anchorPaneKeyPressed"
onMouseMoved="#anchorPaneMouseMoved"
onMousePressed="#anchorPaneMousePressed"
onMouseDragged="#anchorPaneMouseDragged">
<children>
<ToolBar fx:id="toolBar"
AnchorPane.leftAnchor="0.0"
AnchorPane.rightAnchor="0.0"
AnchorPane.topAnchor="0.0"
prefHeight="70.0" minHeight="70.0" maxHeight="70.0"
onMouseClicked="#toolBarMouseClicked"
onMousePressed="#toolBarMousePressed"
onMouseDragged="#toolBarMouseDragged">
<ModuleBar fx:id="moduleBar">
<HBox.margin>
<Insets top="20.0" right="0.0" bottom="0.0" left="0.0"/>
</HBox.margin>
</ModuleBar>
</ToolBar>
<StackPane fx:id="moduleRegion"
AnchorPane.leftAnchor="0.0"
AnchorPane.rightAnchor="0.0"
AnchorPane.topAnchor="70.0"
AnchorPane.bottomAnchor="0.0" />
</children>
</AnchorPane>
</children>
</AnchorPane>
允许此根窗格将任何“模型”窗格添加到 moduleRegion。这个模型是一个有一些内容的窗格,在这个问题中以滚动窗格为例。如图所示,根窗格包含被覆盖的鼠标处理程序,代码太大而无法包含在问题中。
滚动窗格只是一个带有滚动窗格的 HBox 窗格,没有任何鼠标处理程序。