序盤のimport文の群れ
→なんだかしらんが必要。
public class kadai_EXE28 extends Application {
→クラスの宣言。ファイル名と同一。
extends Applicationとは、「ApplicationパッケージのApplicationクラスというものがもう上位にありますので、それをextends(継承)して機能をまるっと使いますよよろしくね」というおねがい文。
おそらくだが、この部分にグローバル変数は宣言する。そうしないと下の行でボタンを押したときとかの記述で、変数操作がスコープ外になる。
public static void main(String[] args) {
→mainメソッドは必須。といいつつないサンプルもあるので謎。基本的に必要。
なぜかmainクラスではない。
launch(args);
→javafxアプリを起動する命令とのこと。
@Override
→mainメソッドが閉じた次の行にたいていかかれる。目下謎
おまじないの可能性もある。
>スーパークラスのメソッドをサブクラスで書き直すこと
といわれてもハテナだ。
>スペルミスとかで存在しないメソッドをオーバーライドしているという問題がすぐに明らかになる
こちらの用途だったらおまじないだ。
https://qiita.com/karur4n/items/881bb40a1e6694caca9f
これでしたね(確認済み)
この一文を書いておくと、上位から継承されたなにものかが、ここであらためてセットするときスペルミスしていると、エクリプスさんがばってんを付けて教えてくれる
そのために記述する
よって記述していないサンプルがぶろぐによってはあったりするのだ
public void start(Stage myStage) {
→startメソッド。これも必須(といいつつサンプルによりけりか)。一応必須。
プリントではほぼすべての内容がこの部分に記述される。
「アプリがスタートする際の処理」とのこと。
なおStage myStageというのは int hogeとまたもや一緒。
引数が何の型でなんという変数にぶちこむかということを記述している
それを書かないとjavaさんは引数なんやねんになるので。
なおstart1とかかくとばってんになるように@Overrideを記述しているというお話だったので、逆に言えばstartは上位で既に用意されているということになる。中身はおそらくからっぽだろう。
上位の方でstartメソッドは用意されている、その中身をオーバーライドしてコーダーが記す、らしいな。
StageはGUI(グラフィカルユーザインタフェース)を乗せる大台とのこと。
この部分で、
・pane関係を記す
・Scene scene = new Scene(pane,300,350); とかを記す
・この3つを記す
myStage.setTitle("Exe2");
myStage.setScene(scene);
myStage.show();
・labelとかがあったら記す
・ボタンのアクションもこの中に記す。人によってはその部分をさらにインデントしている。
正確にかっこを閉じましょう。
canvasが出てくると構造はまた別個になる。