对于类型Button,方法setOnAction((<no type =“”> e) - &gt; {})未定义

时间:2016-01-31 05:53:08

标签: java javafx

所以我试图让这个窗口显示出来。并且它给了我关于没有为Button类型定义的方法的错误。我不确定为什么,因为这段代码是直接从教程中复制的。在他的IDE上工作但不在我的IDE中。他正在使用intellij而我正在使用Eclipse。

错误是:

    closeButton.setOnAction(e -> window.close()); 
  

类型setOnAction((<no type> e) -> {})

的方法Button未定义
    layout.getChildren().addAll(label, closeButton);
  

addAll(int, Collection<? extends Node>)类型中的方法List<Node>不适用于参数(Label, Button)&#34;

import java.awt.Button;

...

public static void display(String title, String message) {
    Stage window = new Stage();

    //Block events to other windows
    window.initModality(Modality.APPLICATION_MODAL);
    window.setTitle(title);
    window.setMinWidth(250);

    Label label = new Label();
    label.setText(message);
    Button closeButton = new Button("Close this window");
    closeButton.setOnAction(e -> window.close());

    VBox layout = new VBox(10);
    layout.getChildren().addAll(label, closeButton);
    layout.setAlignment(Pos.CENTER);

    //Display window and wait for it to be closed before returning
    Scene scene = new Scene(layout);
    window.setScene(scene);
    window.showAndWait();
}

1 个答案:

答案 0 :(得分:4)

您使用的是错误的Button课程。您引用的Button类是AWT Button。相反,您应该使用JavaFX Button

将您的import语句更改为以下内容:

import javafx.scene.control.Button;