gpt4 book ai didi

javafx - 未调用 setOnMouseClick JavaFx 区域

转载 作者:行者123 更新时间:2023-12-04 18:24:20 24 4
gpt4 key购买 nike

我在 Parent 中有一个区域对象,我想像这样设置 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 对象时,我的方法 handle 从未被调用。如果我添加一个 ImageView 对象,就会收到点击。

有什么想法吗?

最佳答案

Parent 通常根据它的 child 计算它的大小。空父级的大小为 0。

看看下一个例子。请注意,parent 大小是手动设置的,只有在单击 Pane 内部(红色方 block )时才会出现“单击”输出:

@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();
}

关于javafx - 未调用 setOnMouseClick JavaFx 区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9525072/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com