山傘のプログラミング勉強日記

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

JavaFX ボタンを押すとラベルの文字が切り替わる

JavaFXを用いてボタンを押すとラベルの文字が切り替わるアプリケーションを作りました。下のサイトを参考にしました。
カウンターアプリを作る – Teaching Programming

f:id:yamakasa3:20180227192500p:plainf:id:yamakasa3:20180227192504p:plain

package application;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
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.layout.VBox;
import javafx.scene.text.Font;
import javafx.stage.Stage;
public class Button1 extends Application implements EventHandler<ActionEvent> {
	private Label label;
	private Button btnOk;
	private String s1 = "Hello, Java!";
	private String s2 = "Good, JavaFX!";
	@Override
	public void start(Stage stage) throws Exception{
		stage.setTitle("MyButton");
		stage.setWidth(250);
		stage.setHeight(200);

		label = new Label(s1);
		label.setFont(new Font(12));

		//ボタンの機能
		btnOk = new Button("ボタン");
		btnOk.setPrefWidth(120);
		btnOk.setOnAction(this);

		//配置
		VBox root = new VBox();
		root.setAlignment(Pos.CENTER);
		root.setPadding(new Insets(10, 10, 10, 10));
		root.setSpacing(20.0);
		root.getChildren().addAll(label, btnOk);

		stage.setScene(new Scene(root));
		stage.show();
	}
	public static void main(String[] args) {
		launch(args);
	}
	//ラベルの文字を切り替える
	@Override
	public void handle(ActionEvent event) {
		 if(label.getText().equals(s1)) {
			 label.setText(s2);
		 }else {
			 label.setText(s1);
		 }
	}
}