我的JavaFX布局有一个TabPane。每个选项卡都包含一个AnchorPane,在此内部包含一个SplitPane。我想要达到的目的是:使用 setMouseTransparent(true) 使SplitPane无法调整大小。这显然有效,但正如JavaDoc所指出的那样:
如果为true,则此节点(及其所有子节点)对鼠标事件完全透明。选择鼠标事件的目标时,将mouseTransparent设置为true的节点及其子树不会被考虑在内。
这对我来说是一个问题,因为我的SplitPane中有节点,我希望能够与之交互(即:按钮; ...)。 环顾四周,我发现了几个关于类似问题的答案很好的问题,两者都暗示在父节点上使用 node.setPickOnBounds(false) 。就我而言,父母将是SplitPane 太糟糕了,这对我不起作用。
首先,这些是我读过的两个问题:
JavaFX: How to make a Node partially mouse transparent?
Mouse Events get Ignored on the Underlying Layer
其次,我的JavaFX场景的截图:
最后,我的JavaFX控制器的代码片段。
public class MainViewController extends AbstractController implements Initializable {
@FXML private SplitPane splitPanelConnectionSettings;
@FXML private Button buttonStartApache;
@FXML private Button buttonStartMySQL;
@FXML private Button buttonStartDataParser;
@Override
public void initialize(URL url, ResourceBundle rb) {
splitPanelConnectionSettings.setMouseTransparent(true);
splitPanelConnectionSettings.setPickOnBounds(false);
buttonStartApache.setOnAction((event) -> {
// Creating a new FXML object and binding to it the relative "*.fxml" resource file.
FXMLLoader loader = new FXMLLoader();
fxmlLoader(loader, FXML_START_APACHE_POPUP_PATH);
});
buttonStartMySQL.setOnAction((event) -> {
// Creating a new FXML object and binding to it the relative "*.fxml" resource file.
FXMLLoader loader = new FXMLLoader();
fxmlLoader(loader, FXML_START_MYSQL_POPUP_PATH);
});
buttonStartDataParser.setOnAction((event) -> {
// Creating a new FXML object and binding to it the relative "*.fxml" resource file.
FXMLLoader loader = new FXMLLoader();
fxmlLoader(loader, FXML_START_DATA_PARSER_POPUP_PATH);
});
buttonResetLastMessageID.setOnAction((event) -> {
// Creating a new FXML object and binding to it the relative "*.fxml" resource file.
FXMLLoader loader = new FXMLLoader();
fxmlLoader(loader, FXML_RESET_LAST_MID_POPUP_PATH);
});
}
...
}
使用
splitPanelConnectionSettings.setMouseTransparent(true);
splitPanelConnectionSettings.setPickOnBounds(false);
不打算做这项工作。 SplitPane无法调整大小,但即使我已将 setPickOnBounds 设置为 false ,其所有子项也无法点击。 任何提示?