当我们创建JavaFX应用程序时,通常会扩展Application类。
public class Myjavafx extends Application{
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage){
Button btn = new Button();
btn.setText("click me");
BorderPane pane = new BorderPane();
pane.setCenter(btn);
Scene scene = new Scene(pane, 300,250);
primaryStage.setScene(scene);
primaryStage.setTitle("my app");
primaryStage.show();
}
}
但我能不扩展Application类来实现吗? 我尝试过创建JavaFX应用程序而不扩展它。
public class Myjavafx{
public static void main(String[] args) {
Application myapp = new Application(){
@Override
public void start(Stage primaryStage){
Button btn = new Button();
btn.setText("click me");
BorderPane pane = new BorderPane();
pane.setCenter(btn);
Scene scene = new Scene(pane, 300,250);
primaryStage.setScene(scene);
primaryStage.setTitle("my app");
primaryStage.show();
}
};
myapp.launch(args);
}
}
但是它出现了错误
class Myjavafxis not a subclass of javafx.application.Application
需要扩展Application类吗?或者我做错了什么。
myapp
? - undefinedApplication.launch()
使用反射创建应用程序类的新实例。匿名类用于创建一个单一、一次性的类实例,而无需给类命名。由于您随后需要使用Application.launch()
来创建类的另一个实例,使用匿名类并不是正确的方法。如果您愿意,可以像链接中的问题所示,创建一个命名的内部类(必须是公共类)。 - undefined