【发布时间】:2017-11-20 21:32:18
【问题描述】:
我有一张卡片,由页眉、正文和页脚组成,可以包含更多节点,如标签、文本字段等。
而且我需要在点击发生卡内时随时捕捉on mouse clicked 事件,无论是卡本身还是其子卡之一。现在,如果我单击文本字段,则不会触发事件。
private StackPane newCard() {
//card wrapper
StackPane card = new StackPane();
VBox cardContent = new VBox();
JFXDepthManager.setDepth(card, 1);
//Header
StackPane header = new StackPane();
VBox headerContent = new VBox();
header.getChildren().add(headerContent);
Label label = new Label("Card title");
//if I click this text field, event is not triggered
TextField groupCode = new TextField();
headerContent.getChildren().addAll(label, groupCode);
//body
StackPane body = new StackPane();
//footer
StackPane footer = new StackPane();
cardContent.getChildren().addAll(header, body, footer);
card.getChildren().add(cardContent);
//event
card.setOnMouseClicked(event -> System.out.println("Clicked!"));
return card;
}
就像上面的例子一样,如果我单击文本字段输入内容,"Clicked!" 不会打印出来。
【问题讨论】: