簡単な例(JavaFx 8)

Java8で導入された。 FXMLと呼ばれる XMLとCSSを併用してデザインを記述らしい。

簡単な例

public class JavaFx01 extends Application {
	@Override
	public void start(Stage stage) throws Exception {
		Label message = new Label("Hello, JavaFX!");
		message.setFont(new Font(100));
		stage.setScene(new Scene(message));
		stage.setTitle("Hello");
		stage.show();
	}
}

次のように起動する。 ※もしかしたら、クラスパスにjfxrt.jarを入れる必要があるかもしれない。

java -cp %CLASSPATH% com.tryjava.ext.javafx.JavaFx01

Eclipseから実行するときは、mainメソッドがあったほうが良いかも。 mainメソッドは次のように書ける。

public static void main(String[] args) {
	launch(args);
}

テキストボックスやボタンを使った例

public class JavaFx02 extends Application {
	@Override
	public void start(Stage stage) throws Exception {
		String title = this.getClass().getSimpleName();
		Label titleLabel = new Label(title);
		TextField textField = new TextField();

		Label msgLabel = new Label();
		msgLabel.setText("入力結果:");

		Button updateButton = new Button("更新");
		updateButton.setOnAction((actionEvent) -> {
			msgLabel.setText("入力結果:" + textField.getText());
		});

		Button closeButton = new Button("閉じる");
		closeButton.setOnAction((actionEvent) -> {
			stage.hide();
		});

		VBox pane = new VBox();
		pane.setPadding(new Insets(20));
		pane.setSpacing(10);
		pane.getChildren().add(titleLabel);
		pane.getChildren().add(textField);
		pane.getChildren().add(msgLabel);
		pane.getChildren().add(updateButton);
		pane.getChildren().add(closeButton);

		stage.setScene(new Scene(pane));
		stage.setTitle(title);
		stage.show();
	}
}

参考