javafx标题窗格仅为标题单击事件

javafx标题窗格仅为标题单击事件,javafx,Javafx,是否有任何方法可以使事件仅在单击标题窗格的标题时触发 我在图形编辑器中有几个节点,目前它们是可拖动的。 但我只希望它们在我拖动标题时拖动,而不是在我单击窗格上的任何位置时拖动 mouseClick事件似乎对我不起作用。 有人有什么建议吗?不要在标题窗格上设置文本,而是创建一个标签,并将其设置为标题窗格的图形。然后,您可以使用标签注册鼠标处理程序: private TitledPane createClickableTitledPane(String text) { Label label

是否有任何方法可以使事件仅在单击标题窗格的标题时触发

我在图形编辑器中有几个节点,目前它们是可拖动的。 但我只希望它们在我拖动标题时拖动,而不是在我单击窗格上的任何位置时拖动

mouseClick事件似乎对我不起作用。
有人有什么建议吗?

不要在标题窗格上设置文本,而是创建一个标签,并将其设置为标题窗格的图形。然后,您可以使用标签注册鼠标处理程序:

private TitledPane createClickableTitledPane(String text) {
    Label label = new Label(text);
    label.setOnMouseClicked(e -> System.out.println("Click on "+text));
    TitledPane titledPane = new TitledPane();
    titledPane.setGraphic(label);
    return titledPane ;
}

编辑: 有时
titledPane.lookup(“.title”)
返回
null
,这意味着。要解决此问题,需要在包含
标题窗格的窗格上使用
applyCss()
layout()

见:

我尝试了您的代码,它基本上满足了我的要求,但我现在的问题是,事件只针对标签文本,有没有办法获取整个标题的事件?虽然此代码可以回答问题,提供关于此代码为什么和/或如何回答此问题的附加上下文可以提高其长期价值。我尝试使用applyCss和布局方法,但不起作用。我最后只是在Platform.runLater上进行了查找,效果很好。
StackPane titleRegion = (StackPane) titledPane.lookup(".title");
titleRegion.setOnMouseClicked(System.out::println);