【发布时间】:2019-04-22 03:16:46
【问题描述】:
我试图在 Launcher 类中有一个按钮,并在另一个类中创建一个处理函数,如下所示。但是,处理功能似乎不起作用。没有打印任何内容。
我认为功能 button.setOnAction(anotherclass) 是原因。在一些教程中,他们说 setOnAction() 的参数是我放置处理函数的地方。所以我在那里放了另一个类。
我知道我可以在同一个类中创建一个处理函数或者只使用 lambda。但是,我正在尝试看看这种方法是否有效。
public class Launcher extends Application{
public static Button button;
AnotherClass anotherclass;
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage myStage) throws Exception {
button = new Button("Click me");
button.setOnAction(anotherclass);
StackPane layout = new StackPane();
layout.getChildren().add(button);
Scene scene = new Scene(layout, 300, 250);
myStage.setScene(scene);
myStage.show();
}
}
public class AnotherClass implements EventHandler<ActionEvent>{
@Override
public void handle(ActionEvent event) {
if(event.getSource()== Launcher.button) {
System.out.println("print");
}
}
}
谁能帮我在与按钮不同的类中创建处理函数?
【问题讨论】:
-
你需要初始化
anotherclass,它是一个class。现在你在setOnAction方法中设置null。
标签: java button javafx event-handling