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

如何在JavaFX中从匿名MenuItem中获取文本?

岑和风
2023-03-14

我的目标是从arraylist创建menuitem,然后向每个menuitem添加一个事件,该事件在ArrayList中搜索所选的menuitem,以便它可以转移到下一个场景。菜单项将位于菜单按钮内。

    MenuButton selectAccount = new MenuButton("Select an Account");
    selectAccount.setMaxWidth(Double.MAX_VALUE);

    for (int i = 0; i < accountList.size(); i++) {

        //add the items. accountList is my arraylist
        selectAccount.getItems().add(new MenuItem(accountList.get(i).getName()));

        //add the event to items.
        selectAccount.getItems().get(i).setOnAction((ActionEvent e)->{

         // need to grab the text that is inside the menuitem here
         // will run loop to compare text with names in my accountList arraylist
         // if name matches, then the object from arraylist will be loaded into next scene

        });
    }

我遇到的问题是如何从菜单项中提取文本。我如何引用这些匿名菜单项的文本?

共有1个答案

郎和通
2023-03-14

假设 accountList 中元素的类型是类 Account(如果不是,只需相应地更改它),如果您使用正常的列表迭代(而不是基于索引的 for 循环),这一切都可以自然而然地完美运行:

MenuButton selectAccount = new MenuButton("Select an Account");
selectAccount.setMaxWidth(Double.MAX_VALUE);

for (Account account : accountList) {

    MenuItem item = new MenuItem(account.getName());
    selectAccount.getItems().add(item);

    item.setOnAction((ActionEvent e)->{

        // now just do whatever you need to do with account, e.g.
        showAccountDetails(account);

    });
}
 类似资料:
  • 我在许多地方看到了关于如何使用代码获取表头的示例 像这里:如何防止TableView从做TableColsta重新排序在javaFX 8? 但是这个代码为我返回。 如何到达然后?

  • 问题内容: 我对Android开发和Java超级陌生。这是基本设置:我有一个初始屏幕,带有来检查服务器的可用性。在此线程之后,我在活动中进行了回调。这比进行工作更有意义,因为我想在不同的活动中重用此任务。 但是,在我的回调中,我检查状态是否正常。如果是,它将启动下一个活动。但是从回调的上下文来看,我不知道如何获得我的引用,我需要将它作为Intent的参数。 这是我在Activity中OnCreat

  • 我正在使用场景构建器构建一个Java应用程序的GUI。对于每个元素,我都给了它一个,以便以后可以引用它们。我需要在它的许多元素上使用,例如: 这对除s之外的大多数元素都有效。当我尝试以下操作时,Eclipse告诉我“不能从强制转换到”,但它不起作用。 我看到只扩展了,因此它不能从强制转换。如何使用取回? 注意:我知道我可以使用FXML的,但我希望使用Lambda函数并保持事件处理代码的相同风格。

  • 问题内容: 我在许多地方看到了有关如何通过代码获取表头的示例 但是这段代码为我返回。 怎么到达呢? 问题答案: 的创建者为,而默认值只有在应用CSS后才会创建。 您可以在将添加到后将其调用,然后在此调用之后访问。 或者,侦听中的更改并在设置外观后执行该代码。 此外,我建议使用而不是使用来检索标题行(无论如何,您都在使用包)。

  • 我想从SD卡文件路径中获取文件名。e、 g.:/storage/sdcard0/DCIM/Camera/1414240995236。jpg我想得到1414240995236。jpg我已经编写了获取相同内容的代码,但它不起作用。请帮忙<下面是我的代码: