为什么在ObservableList下划线?

时间:2019-04-20 16:02:31

标签: javafx

我是JavaFX的新手。我自己学习JavaFX。我正在使用Eclipse运行我的代码。我了解到,Group类的getChildren()方法为您提供了一个ObservableList类的对象,该对象包含节点。但是在Eclipse中,ObservableList用黄色下划线标出,我无法运行我的代码。我只是想使用JavaFX创建一个非常简单的应用程序

这是我的代码

{
    public void start(Stage primaryStage) throws Exception
    {
        Text welcome = new Text("Welcome To JavaFX");
        welcome.setFont(new Font(45));
        welcome.setX(45);
        welcome.setX(150);

        Group Root = new Group(welcome);
        ObservableList list = Root.getChildren();
        list.add(welcome);

        Scene scene = new Scene(Root,600,300);
        scene.setFill(Color.GREY);

        primaryStage.setTitle("Sample Application");
        primaryStage.setScene(scene);
        primaryStage.show();
    }
    public static void main(String[]args)
    {
        launch(args);
    }
}

Picture of my Code underlined in Yellow

1 个答案:

答案 0 :(得分:0)

您在这里所做的就是使用Java的自动类型擦除。

ObservableList定义为:

public interface ObservableList<E> extends List<E>, Observable {

<E>是元素的通用类型。因此,如果像您这样拥有一个ObservableList来保存Nodes,那就是:

ObservableList<Node> foo = Root.getChildren()

您的IDE告诉您,通过省略类型参数,您实际上拥有ObservableList<Object>,这不是错误,但在这种情况下可能不是您想要的。