Java 初めてでも大丈夫〜ステップアッププログラミングのススメ〜

イントロダクション

プログラムを学習する事で、身につく事が結構あります。

  • 物事を順序だてて考える、説明する
  • 知りたい事を明確に言葉にする
  • 物事の問題究明の手順を導く
  • 目的の為にロードマップを作れる

以上のようなものがあると思いますが、このように認識する、しないは本人次第になります。早い話が理論的思考が身につくと言うことです。

具体手には、プログラムを組み立てる行為に上に挙げた事が必要なので身につくといううわけです

コードを書く

プログラミングの初めは、真似から入ります。

プログラムに限らず創造は模倣に始まる

という様に、決まった形のプログラムがあります。俗に言う「ハローワールド」というプログラムです。コンソール(コマンドプロンプトやターミナル)に出力するものですが、今回はJavaFxでやります。通常のHello Worldはこちら

Hello Java Fx

とりあえずは、プログラムの構成イメージを作ってみました。

Java Fxのアプリケーションクラスの上にシーンが、クラス・コンテナ(Map)に登録されていて、切り替えが出来るような物を作ります。※図の作成はDrawExpressを使用しました。

とりあえず、以下のリンクも参考にどうぞ

  1. Java Install Eclipse〜開発ツールのインストール〜
  2. Eclipse Meven 開発手順〜プロジェクトの作成〜

https://www.youtube.com/watch?v=Y3CTUKx2_no&feature=youtu.be

Lv1.ハローワールド

HelloWorldをやります。とりあえずコードは下のようになります。

package jp.zenryoku.fx;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.stage.Stage;
/**
* JavaFXでのハローワールド〜OpenCVなどの
* 作成したアプリをテストするための、スタンドアロンアプリ。
* 
* @author takunoji
* 2019/01/23
*/
public class RootFxMain extends Application {
/** 画面の縦幅 */
private double VIEW_HEIGHT;
/** 画面の横幅 */
private double VIEW_WIDTH;
/**
* 親クラスのメソッドをオーバーライドする。
* 画面を作成したり、シーンを作成したり、色々。。。
* 
* @see javafx.application.Application#start(javafx.stage.Stage)
*/
@Override
public void start(Stage primaryStage) throws Exception {
    // Stageの設定
    primaryStage.setHeight(VIEW_HEIGHT);
    primaryStage.setWidth(VIEW_WIDTH);
    // ラベルの設定
    Label label = new Label();
    // ペインの作成
    Group root = new Group();
    root.getChildren().add(label);
    // シーンの作成
    Scene scene = new Scene(root, VIEW_WIDTH, VIEW_HEIGHT);
    primaryStage.setScene(scene);
    primaryStage.show();
}
/**
* メインメソッド
* @param args プログラム引数
*/
public static void main(String[] args) {
    // 親クラスのメソッドを呼び出す、これは上のstart()を呼び出す。
    launch();
}
}

起動すると、下のような感じで表示されます。


真っ白な部分がこのJavaFXで作られた画面になります。

初めのプログラムを書くためのスペースを作成する必要があります。

なので下のメソッドを1つ追加します。

/**
* JavaFX版のハローワールド実装用のメソッドになります。
* @return 画面に出力する文字列
*/
public String myFirstProgram() {
// この「hyoji = ""」を「"hyoji = "Hello World"」と修正してください。
String hyoji = "Hello World";
return hyoji;
}

そして、上の「start」メソッドに下の2行を追加します。

// ハローワールドを出力する
label.setText(myFirstProgram());
label.setFont(new Font("RobotRegular", 24));

実行結果:作成したコードはこちら(GIT)

ちょっとかけ離れているかもですが、一応、OpenCVでのテストを行う準備も含めています。。。

追記

この次からの記事もそうですが

「初めてでも大丈夫」じゃなかったかも?

ちょいと自分の書いた記事を見直してみたところ、途中の過程が抜けているように思いました。そーすると「初めてでは危うい」と思いましたのでオラクルのチュートリアルを進める方向で行ってみようと思います。

 

でわでわ。。。

関連ページ

※ラジオボタンでページのリンクが表示されます。