JavaFX 8

时间:2016-04-07 18:10:25

标签: event-handling javafx-8

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

0 个答案:

没有答案