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();
}
}
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'を宣言しますか? –
新しい答えをご覧ください。 –
'Application.launch()'はリフレクションによってアプリケーションクラスの新しいインスタンスを作成します。匿名クラスは、クラスの名前を付けずに、クラスのインスタンスを1回作成するために使用されます。その後、クラスの別のインスタンスを作成するために 'Application.launch()'が必要になるため、匿名クラスを使用することはこれを行う正しい方法ではありません。必要に応じて、リンクされた質問のように、名前付き内部クラス(publicでなければならない)を作成することができます。 –