ヤマカサのプログラミング勉強日記

プログラミングに関する日記とどうでもよい雑記からなるブログです。

JavaFX 名前を入力してボタンを押すと表示されるアプリケーション

JavaFXの演習問題

JavaFXで、名前を入力してボタンを押すと、「こんにちは"名前"さん」と表示されるアプリケーションを作りました。これは、JavaFXの本の演習問題です。
GUIの部分はScene Builderを使った方が楽になると思いますが、JavaFXの基礎を学んでから導入したいと思います。残念ながら、この本
JavaFX & Java8プログラミング―Javaによる新しいGUIプログラミング入門
には載ってないみたいです。


コード

package application;

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class Ex2_1 extends Application{

	@Override
	public void start(Stage stage) throws Exception{

		// 画面の設定
		stage.setTitle("Name");
		stage.setWidth(300);
		stage.setHeight(200);

		// 入力可能なテキストボックス
		TextField textField = new TextField();
		textField.setText("名前を入力してください");

		// 入力された名前を反映させるラベル
		Label label = new Label();
		label.setPrefWidth(250);
		label.setPrefHeight(60);

		// テキストフィールドの内容を反映させるボタン
		Button btn = new Button("ボタン");
		btn.setPrefWidth(60);
		btn.setPrefHeight(30);
		btn.setOnAction(event -> label.setText("こんにちは、" + textField.getText() + "さん"));

		// テキストフィールド、ラベル、ボタンを垂直に配置
		VBox root = new VBox();
		root.setAlignment(Pos.TOP_CENTER);
		root.setPadding(new Insets(5, 5, 5, 5));
		root.setSpacing(5.0);
		root.getChildren().addAll(textField, label, btn);

		stage.setScene(new Scene(root));
		stage.show();
	}
	public static void main(String[] args) {
		launch(args);
	}
}