使用 JavaFX- 无法添加全部(文本字段、文本区域、字符串)。我不应该吗?

Using JavaFX- Cannot addAll(Text field, Text area, String). Shouldn't I be able to?

我的代码:

public class Main extends Application {

TextArea area = new TextArea();
TextField field = new TextField();
String text = "";
public void start(Stage primaryStage){

    VBox pane = new VBox();
    Button next = new Button("Next");
    next.setOnAction(e->{
        text+= "\n" + field.getText();
        area.setText(text);
    });
    pane.getChildren().addAll(area,field,next);
    Scene scene = new Scene(pane, 700, 300);
    primaryStage.setTitle("CosmicWimpout");
    primaryStage.setScene(scene);
    primaryStage.show();

}

错误在 .addAll,错误内容为:

The method addAll(int, Collection<? extends Node>) in the type List<Node> is not applicable for the arguments (TextArea, TextField, String).

所以我刚刚编辑了 post 以包含 .addAll(area, field, next)。这些都是 GUI 节点,但是 the.addAll 方法不接受这些参数。

正如@sillyfly 已经指出的那样,pane 属于 VBox 类型,它是 Parent 的子类型。子列表上的方法 getChildren will return an ObservableList of type Node. Therefore the method addAll 将采用 Node 类型的可变参数作为参数。 String 显然不是 Node.

类型

您要导入什么类?对我来说,导入时出现错误:

import java.awt.Label;

而不是:

import javafx.scene.control.Label;

这通常发生在您的 IDE 自动为您导入 类 时。有时您应该考虑手动输入它们。