Takunojiの日記

自分が勉強したプログラム技術メモ

JavaFx 開発チュートリアル 〜3: 入力イベントを操る(実装編)〜

前回、初めに実装したJavaFxのソースを眺めました
そして、今回はイベント処理の実装を行います。

また前回と同じソースです。ダウンロードはここ

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();

}

}

タイトルに入力イベントと記載しましたが「入力イベント」という言葉は
範囲が広いのでボタン押下(ボタンクリック入力)のイベント処理に着目します。

上のソースでは、「btn.setOnAction(new EventHandler<ActionEvent>() {」
で始まる行がイベント処理の実装部分です。

作成したボタンに「setOnAction()」でイベント処理を設定します。
new クラス名() {無名(のインナー)クラスを定義}
赤い部分がイベントの処理部分になります。
EventHandlerはJavaFxフレームワークで定義されているインターフェースで
インターフェースの実態部分を実装します。→なので必要な関数をオーバーライドします。
ーーーーーーーーーーーーー
@Orverride
public void handle(ActionEvent event) {

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

ーーーーーーーーーーーーー
ボタン押下時にコンソールへ文字列「Hello World」を出力します。
「このコンソールへ出力する」は「 標準出力へ出力する」とも言います。
標準入力→InputStream
標準出力→OutputSream

結論からいうと
上のメソッドを実装すればボタンのアクションはコントロールできるということです。

そのほかのコンポーネンントはそれぞれに「アクション」「イベント」に対応するメソッドがあるので、そいつを「オーバーライド」してやればOKということです。
これ以上は、実装してみないとわからない部分なので是非自分で「オリジナル画面」を作成してみてください。

自分は、現在「JavaFx制のコマンドプロンプト」を作成中です。
でわでわJavaFxを楽しめることを祈っています。