Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将菜单项添加到多个菜单_Java_Javafx_Javafx 8 - Fatal编程技术网

Java 将菜单项添加到多个菜单

Java 将菜单项添加到多个菜单,java,javafx,javafx-8,Java,Javafx,Javafx 8,我目前正在用JavaFX8为一个图书馆(用于书籍)编写一个菜单栏。我想在几个菜单中添加一个菜单项。如果我这样做,输出是一个警告,说明此MenuItem已添加,并且在应用程序中未显示Book菜单 代码: 提前谢谢 简单地说,之所以会发生这种情况,是因为您将一个节点放在了两个不同的父节点上(请参见两次使用的Books Alphabical): 不知道MenuItemsBooks按字母顺序、Encalphabetic、booksReview应该出现在哪里,因此它们只会添加到最后一个sortMenu 为

我目前正在用JavaFX8为一个图书馆(用于书籍)编写一个菜单栏。我想在几个菜单中添加一个菜单项。如果我这样做,输出是一个警告,说明此MenuItem已添加,并且在应用程序中未显示Book菜单

代码:


提前谢谢

简单地说,之所以会发生这种情况,是因为您将一个节点放在了两个不同的父节点上(请参见两次使用的
Books Alphabical
):

不知道MenuItems
Books按字母顺序、Encalphabetic、booksReview
应该出现在哪里,因此它们只会添加到最后一个
sortMenu

为什么会这样?javafxapi的构建使得每个
节点
都有一个属性集合,包括一个仅为一个的父属性

解决方案是第二次创建它们,使它们具有唯一性,因为您希望使用它们两次

MenuItem booksAlphabeticalSort = new MenuItem("Books alphabetical");
MenuItem encAlphabeticalSort  = new MenuItem("Encyclopedias alphabetical");
MenuItem booksReviewSort = new MenuItem("Books sorted by review"); 

sortMenu.getItems().addAll(booksAlphabeticalSort, encAlphabeticalSort, booksReviewSort);
bookMenu.getItems().addAll(addBook, booksAlphabetical, encAlphabetical, booksReview); 
sortMenu.getItems().addAll(booksAlphabetical, encAlphabetical, booksReview);
MenuItem booksAlphabeticalSort = new MenuItem("Books alphabetical");
MenuItem encAlphabeticalSort  = new MenuItem("Encyclopedias alphabetical");
MenuItem booksReviewSort = new MenuItem("Books sorted by review"); 

sortMenu.getItems().addAll(booksAlphabeticalSort, encAlphabeticalSort, booksReviewSort);