Javafx 2 Java FX中的菜单错误

Javafx 2 Java FX中的菜单错误,javafx-2,Javafx 2,我不熟悉使用Netbeans 7.3.1的JavaFX,目前正在使用菜单。我正在阅读《java Fx 2.0示例介绍》一书,并在尝试书中的菜单示例时遇到以下错误 类菜单中的构造函数菜单不能应用于给定类型 必需:无参数 找到:字符串 原因:实际参数列表和正式参数列表长度不同 这是我的代码,就我的JavaFx知识而言,它是正确的,并且包含了所有主要的JavaFx菜单导入!!我不知道为什么“菜单”构造函数不接受字符串作为参数!!请帮忙 package menu; import javafx.appli

我不熟悉使用Netbeans 7.3.1的JavaFX,目前正在使用菜单。我正在阅读《java Fx 2.0示例介绍》一书,并在尝试书中的菜单示例时遇到以下错误

类菜单中的构造函数菜单不能应用于给定类型
必需:无参数
找到:字符串
原因:实际参数列表和正式参数列表长度不同

这是我的代码,就我的JavaFx知识而言,它是正确的,并且包含了所有主要的JavaFx菜单导入!!我不知道为什么“菜单”构造函数不接受字符串作为参数!!请帮忙

package menu;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.MenuBar;
import javafx.scene.control.MenuItem;
import javafx.scene.control.SeparatorMenuItem;
import javafx.stage.Stage;
public class Menu extends Application {

    @Override
    public void start(Stage primaryStage) {
        Group root = new Group();
        Scene scene = new Scene(root, 300, 250);
        primaryStage.setTitle("Hello World!");
        MenuBar menuBar = new MenuBar();
        Menu menu = new Menu("File");//This line is giving errors..
        menu.getItems().add(new MenuItem("New"));
        menu.getItems().add(new MenuItem("Save"));
        menu.getItems().add(new SeparatorMenuItem());
        menu.getItems().add(new MenuItem("Exit"));
        menuBar.getMenus().add(menu);
        root.getChildren().add(menuBar);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

您正在实例化的菜单是

menu.Menu  // which extends javafx.​application.Application and defined by you, i.e. it is
menu.Menu menu = new menu.Menu("File");
而是指定JavaFX菜单的完整路径:

javafx.scene.control.Menu menu = new javafx.scene.control.Menu("File");

或者给你的菜单起不同的名字。U/UPUC的答案是正确的,但我会强烈考虑将这个类的名称从菜单更改为更具体的内容。至少,一些已经不是核心类名的东西。您应该避免使用已经由JavaFX定义为标准类的类的名称。问题是名字冲突。谢谢你的想法奏效了!!乌鲁克!!顺便说一句,我仍然不知道为什么这样做有效,为什么我的不起作用。我之前已经包括了javafx.scene.control import!!我无法理解为什么我需要在代码中再次包含它@安库萨哈。不,您没有导入javafx.scene.control.Menu,请参见问题中的代码。有一个类名冲突,一个是JavaFX类菜单,另一个同名的是应用程序的主类菜单。由于您没有导入JavaFX菜单,并且您的菜单类不需要导入,因为它位于自己的类定义中,因此实例化的菜单被视为您在包菜单中创建和定义的菜单。最好的解决方案是将类的名称更改为特定的名称。