Takunojiのプログラミング・プレイグラウンド(遊び場)

「プログラミングのススメ」と学習した結果身につくもの、アイディアを実現するために何をしたら良いか?の答えが出せるようになります。

JavaFx 開発チュートリアル 〜2: 入力イベントを操る(前振りのみ)〜

前回「Hello JavaFx」をやりました。
なので、今回は入力に対する処理を実装してみようと思います。

前回のソースから ソースはここからダウンロードできます。
ダウンロードはここ

 

javaの書き方とか、わからんちゃ」という人は下の記事を参考にしてみてください。

http://takunoji.minim.ne.jp/wp/2018/05/02/java-hello-world-はじめのプログラム-〜-step1-1〜/

練習用のプログラムもダウンロード出来る様になっています。(eclipse)

 

javaソース↓

public class Lesson1 extends Application {

/**

* はじめのプログラムは「Hello World」<br/>

* どの言語でもやるのです。<br/>

* 主な用途としては、プログラムの疎通確認をやります。<br/>

* ※プログラムの実行環境を作成した後にプログラムが走るか確認<br/>

*

@param args: プログラム引数

*/

public static void main(String args) {

launch(args);

}

/**

* Lesson1. JavaFxでのはじめの一歩<br/>

* Getting started JavaFx on Tutorial<br/>

* この文章がさ記載されている部分をJavaDocコメントと言います。<br/>

*

@see https://docs.oracle.com/javafx/2/get_started/hello_world.htm

@author Takunoji

*/

public class Lesson1 extends Application {

/**

* はじめのプログラムは「Hello World」<br/>

* どの言語でもやるのです。<br/>

* 主な用途としては、プログラムの疎通確認をやります。<br/>

* ※プログラムの実行環境を作成した後にプログラムが走るか確認<br/>

*

@param args: プログラム引数

*/

public static void main(String args) {

launch(args);

}

 

/**

* プログラミング学習の基本は「写経」です。<br/>

* 意味はわからなくても「とりあえず」自分でコードを描いてください。<br/>

* インポートするのはjavafx.XXXを選択します。(IDEを使用している場合)

*/

public void start(Stage primaryStage) {

primaryStage.setTitle("Hello World");

 

Button btn = new Button();

btn.setText("Say Hello World!");

btn.setOnAction(new EventHandler<ActionEvent>() {

@Override

public void handle(ActionEvent event) {

System.out.println("Hello World");

}

});

 

StackPane root = new StackPane();

root.getChildren().add(btn);

primaryStage.setScene(new Scene(root, 300, 200));

primaryStage.show();

}

}
※「描いて」→「書いて」

前回は、とりあえずで写経をしたので内容についてふれませんでした。
今回は、内容からいきます。

1.毎度おなじみ「メインメソッド」です。
public static void main(String[] args) {
       ...処理
}
Javaを起動するときは必ずこれが動きます。※サーバーとかは別の場所で起動します。
初めて、Javaを学ぶ人は、頭ごなしに覚えてしまっても無駄になりません。
筆者は今でも覚えております。→昔、呪文のように唱えて覚えました(笑)

ちなみに、処理内で実行している「launch(args)」は親クラスのメソッドです。
【追申】
子供クラス名 extends 親クラス名 {
    private データ型 フィールド変数;
    private String fieldClassName:
    public static final String CONSTANT_NAME;
    private void methodName (String parameter) {
          プライベートメソッドの処理
   }
  public 返却値 メソッド名(データ型 引数名) {
          パブリックメソッドの処理
  }
}
・メソッド = 関数 = 何かの処理を行う(記載する)もの
・プライベートメソッドは、クラスの外から呼ぶことができない
・パブリックメソッドはクラスの外から呼ぶことができる
・CONSTANT = 定数(この値で変わることがない)

2.startメソッド
親クラス(javafx.application.Applicationを継承している)のメソッドをオーバーライドしている
オーバーライドすると、親クラスからこクラスの「startメソッド」を起動することができる
なので、フレームワークを使用するときによく「〜をオーバーライドして〜」なんて会話がある。詳細に関しては、後々に...
そして、ボタンを作成し、ボタンを押下したときに処理が走る
「アクション」をセットしています。
btn.setOnAction()の部分です。そして左の処理は、下のように書き換えが可能です。
btn.setOnAction(keyEvent -> { Systme.out.println("Hello World"); };
今、流行りなのか、常識なのかわかりませんが、ラムダ式というやつですね。

そして、今回は、このsetOnActionのバリエーションをやろうと思ったのですが、
ここまでにしときましょう(笑)

あ、ちなみに次回は、以下のような画面が表示されるものを作ろうと思います。
テキストエリアに文字を入力してそれに対するイベント処理を行う。。。

f:id:Takunoji:20180430170627p:plain

こんな感じです。コンソールに入力した文字が表示されています。

でわでわ。。。

関連ページ一覧

JavaFXでハローワールド〜OpenCVまで

  1. Java 初めてでも大丈夫〜ステップアッププログラミングのススメ〜
  2. ステップアッププログラミング〜Java FxでHelloWorld解説〜
  3. Java StepUpPrograming〜JavaFX で四則計算〜
  4. Java StepUpPrograming〜JavaFXで画面切り替えを作る1〜
  5. Java StepUpPrograming〜JavaFXで画面切り替え2ボタン作成〜
  6. Java StepUpPrograming〜JavaFXで画面切り替え3アクション〜
  7. Java StepUpPrograming〜JavaFXで画面切り替え4Pane切り替え〜
  8. Java StepUpPrograming〜JavaFXで画面切り替え5WebEngine〜

Eclipse セットアップ

  1. Java Install Eclipse〜開発ツールのインストール〜
  2. TensorFlow C++環境〜EclipseCDTをインストール〜
  3. Setup OpenGL with JavaJOGLを使う準備 for Eclipse
  4. Eclipse Meven 開発手順〜プロジェクトの作成〜
  5. Java OpenCV 環境セットアップ(on Mac)
  6. Eclipse SceneBuilderを追加する
  7. JavaFX SceneBuilder EclipseSceneBuilder連携~