UI和JavaFX有点新鲜。
以下代码段创建一个JavaFX Circle(表示逻辑交换机),它放在GridPane中。运行时行为非常混乱。
在MouseClick事件中,我只想指出所选的开关(圆圈)。这是 parent.setSelectedSwitch(this); 调用。有时它适用于所有Circle节点。其他时候,似乎没有生成事件,至少,注册的事件处理程序似乎没有得到它。我扔进 println()只是为了查看是否正在输入事件处理程序。
我在IntelliJ IDE中工作(如果这有所不同)。一次运行,一切都会正常工作。退出应用程序并重新运行(不进行任何代码更改),并且某些Circle节点似乎不会生成事件。
还有其他人经历过这个吗?
private void generateCircleGraphic() {
graphicCircle = new Circle();
graphicCircle.setRadius(10.0);
graphicCircle.setStroke(Paint.valueOf("BLACK"));
graphicCircle.setStrokeType(StrokeType.INSIDE);
setMouseEventHandler(graphicCircle);
}
private void setMouseEventHandler(Circle circle) {
circle.setOnMouseClicked(event -> {
System.out.println("LogicalSwitch --> " + logicalSwitch.name());
parent.setSelectedSwitch(this);
});
}