2017-04-16 94 views
0

我有一个小问题,当我想添加文本框, 按钮和标签到VBOX我有一个错误: 中的addAll()在ObservableList不能适用于:JavaFX的VBox中的getChildren()中的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(); 
    } 
} 

回答

1

那是因为你已经输入AWT组件java.awt.Labeljava.awt.TextField,而不是JavaFX组件​​和javafx.scene.control.TextField

0

看看你的进口!

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

(ps。请在下次发布您的问题的完整stacktrace!)