多个FXML标签,单个MouseEvent处理程序

时间:2018-02-28 22:33:11

标签: mouseevent handler fxml

我有以下FXML结构:

<AnchorPane fx:id="menuPane">
  <children>
     <VBox>
       <children>
         <Label fx:id="Label1">   </Label> 
         <Label fx:id="Label2">   </Label> 
         <Label fx:id="Label3">   </Label> 

         <Label fx:id="Labeln">   </Label>
       </children>
     </VBox>
   </children>
</AnchorPane> 

我的问题是:我可以在一个方法中处理所有MOUSE_CLICKED事件,还是需要将以下lambda的每个标签写入?

LabelName.addEventHandler(MouseEvent.MOUSE_CLICKED, eventHandler->{});

对于一对标签来说,编写lambda表达式并不是一个问题,但是当我开始获得更多标签时,或者如果在程序运行时可以/将添加更多标签,我需要一种不同的方法。

我在stackoverflow中找到了一个选项,但我不知道我的位置中的“场景”是什么,因为我已经加载了 mainScreen.fxml ,而在MainScreenController中我不知道怎么去现场。

     scene.addEventFilter(MouseEvent.MOUSE_PRESSED, new EventHandler<MouseEvent>() {
        @Override
      public void handle(MouseEvent mouseEvent) {
       System.out.println("mouse click detected! " + mouseEvent.getSource());}
       });

0 个答案:

没有答案