當我們創建一個javafx應用程序時,我們通常擴展Application類。JavaFX不擴展應用程序類
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();
}
}
但我可以做到這一點,而無需擴展應用程序類? 我試圖創建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
是有必要擴展應用程序類?還是我做錯了。
你在哪裏聲明'myapp'? –
查看新的答案。 –
'Application.launch()'通過反射創建應用程序類的新實例。一個匿名類用於創建一個單一的一個類的實例,而不用命名該類。由於您隨後需要'Application.launch()'創建該類的另一個實例,因此使用匿名類並不是正確的方法。如果你喜歡,你可以創建一個命名的內部類(必須是公共的)。 –