我在Parent中有一个Region-object,因为我想设置mouseClick方法,如下所示:
item.getNode().setOnMousePressed(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent me) {
// do something
}
});
该项目来自Parent,并按以下方式创建:
public MyItem(Region node) {
init(node);
}
private void init(Node node) {
getChildren().addAll(node);
}
问题是,当我添加 Region -object时,我的方法 handle 永远不会被调用。如果我添加 ImageView - 对象,则会收到点击。
有什么想法吗?
答案 0 :(得分:4)
Parent
通常会根据孩子的大小来计算它的大小。空父级的大小为0。
看看下一个例子。请注意,parent
大小是手动设置的,只有单击内部窗格(红色方块)时才会发生“单击”输出:
@Override
public void start(Stage stage) throws Exception {
Pane parent = new Pane();
parent.setStyle("-fx-border-color:red;"); // to see pane's size visually
parent.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent t) {
System.out.println("click");
}
});
parent.setPrefSize(100, 100); // set size
stage.setScene(new Scene(new Group(parent),300,300));
stage.show();
}