当前位置: 首页 > 知识库问答 >
问题:

当javafxml对象被激活时,我能在动作事件方法中获得它的id吗?

司徒焕
2023-03-14

我正在尝试编写一个小的rpg,我决定将基础内容放入一个fxml文档(MenuBar及其项目)。所以现在我打算打开一个新窗口,当你点击菜单项(人物,库存

我尝试用“this”访问对象,并考虑使用枚举将ID连接到枚举MenuName的Objects,因此我只需在方法中放置一个开关,从而创建菜单,但这也没有成功,因为在那里我无法检查哪个ID被激发。因此,对于我的程序的这一部分,它没有帮助。

这是我的控制器类中的代码

public class Controller {
    @FXML
    private void menuIsClickedDefault(ActionEvent event) throws Exception {
          Stage secondStage = new Stage();
          Parent a = FXMLLoader.load(getClass().getResource("menus.fxml"));
          secondStage.setTitle(HERES_MY_PROBLEM);
          secondStage.setScene(new Scene(a, 646, 400));
          secondStage.initModality(Modality.APPLICATION_MODAL);
          secondStage.show();
    }
}

这些是我的fxml对象:

<MenuItem fx:id="stats" mnemonicParsing="false" text="Statistics" />
<MenuItem fx:id="inv" mnemonicParsing="false" text="Inventory" />
<MenuItem fx:id="equip" mnemonicParsing="false" text="Equipment" />

我还没有将该方法集成到对象中,因为如果不解决问题,它就没有意义,而且我知道由于设置的类似方法,其余代码正在工作。

共有1个答案

郭琨
2023-03-14

您可以调用事件 .getSource() 来检索触发该事件的节点。但是,您需要将返回的对象强制转换为正确的类型。

private void menuIsClickedDefault(ActionEvent event) throws Exception {
      Stage secondStage = new Stage();
      Parent a = FXMLLoader.load(getClass().getResource("menus.fxml"));

      // Get the source of this event and cast it to a MenuItem; then you can
      // retrieve its text property
      secondStage.setTitle(((MenuItem) event.getSource()).getText());

      secondStage.setScene(new Scene(a, 646, 400));
      secondStage.initModality(Modality.APPLICATION_MODAL);
      secondStage.show();
}
 类似资料:
  • 我正在尝试动画图标在我的应用程序每当它是被点击。我实现了我想要的简单动画,但它总是动画一次后,我来到那个屏幕。我希望每次点击时,它都应该是动画,并且它应该顺时针旋转,持续时间为2秒,当再次按下时,它应该逆时针旋转,持续时间为2秒。请帮帮我 这里是代码的部分-

  • 我有两个事实,分别命名为OptionalCover和OptionalPremiumComponent,其中有OptionalPremiumComponent的参考。这就是我在工作记忆中插入的内容。 我在drools中创建了以下规则 问题是,插入父对象时没有触发上述规则。我还需要做些什么来实现这种行为吗?是否支持? 谢谢你。

  • 当使用PendingEvent启动一项活动,而该活动在后台已经处于活动状态时,我无法获得新意图的额外功能。getIntent返回启动活动的意图,但在本例中,Android只会将其放回前台并调用onResume。我希望能够获得新的额外服务,以便更新活动。 我该怎么做?

  • 我试图实现一个优雅的关闭钩子到我的OSGi的应用程序。我在一个捆绑包中实现它,因为我没有直接访问启动器源。 下面是课堂: 但无论何时启动它,它都会返回一个错误: 错误:[Shutdown HookActivator(8)]激活方法[start]未找到;组件将失败 但是当我从start方法中删除参数时,一切都正常了。所以现在我很困惑,我看到了@Activate方法的参数由OSGi框架自动注入的例子(

  • 本文向大家介绍SAP HANA中激活模式“在受影响的对象不一致时停止激活”的含义,包括了SAP HANA中激活模式“在受影响的对象不一致时停止激活”的含义的使用技巧和注意事项,需要的朋友参考一下 只有在SAP HANA中受影响的对象中没有不一致的情况下,此模式才支持激活所选对象。

  • 问题内容: 我有一个用CSS3进行动画处理的条形图,当前该动画在页面加载时激活。 我的问题是,由于之前有很多内容,因此给定的条形图不在屏幕上,因此当用户向下滚动到该条形图时,动画已经结束。 我正在寻找通过CSS3或jQuery仅在查看者看到图表时激活条形图上的CSS3动画的方法。 如果在页面加载后立即快速向下滚动,则可以看到该动画。 另外,我不知道这是否重要,但是我在页面上有此条形图的多个实例。