JavaFX VBox getChildren()。addAll()错误

时间:2017-04-16 19:49:49

标签: java javafx

我有一个小问题,当我想添加textField时, 按钮和标签到VBOX我有一个错误: ObservableList中的addAll()无法应用于:

Image

在这个地方:vBox.getChildren()。addAll(textField,button,label);

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {

        BorderPane layout = new BorderPane();

        Scene scene = new Scene(layout, 400, 200);

        TextField textField = new TextField();
        Label label = new Label("Average: 0.0");

        Button button = new Button("Przycisk");
        button.setOnAction(event -> {
            String textFromTextField = textField.getText();
            String[] splittedText = textFromTextField.split(",");
            double average = 0.0;
            for (String s: splittedText) {
                average += Double.parseDouble(s);
            }
            average /= splittedText.length;
            label.setText("Average: " + average);
        });

        VBox vBox = new VBox();
        vBox.getChildren().addAll(textField, button, label);
        vBox.setAlignment(Pos.CENTER);
        vBox.setSpacing(10);

        layout.setCenter(vBox);

        primaryStage.setScene(scene);
        primaryStage.setTitle("App");
        primaryStage.show();
    }
}

2 个答案:

答案 0 :(得分:2)

这是因为您导入了AWT组件java.awt.Labeljava.awt.TextField,而不是JavaFX组件javafx.scene.control.Labeljavafx.scene.control.TextField

答案 1 :(得分:0)

好好看看你的进口!

在图像中,您可以看到您使用了'awt'库中的TextField和Label而不是'javafx'库。 一定要改变它,看看它是否成功了!

(请注意。请在下次问题中发布完整的堆栈跟踪!)