イントロダクション
初めは、CUIからJava Swingを起動したかったのですが、ちょいと時間がかかるので保留にして、GUI起動してからSwingを実行する様に変更します。
Introduction
At first I woudl like to execute from CUI to Java Swing(GUI). But I need to more leaning about Swing and X. That's why I will start GUI and execute Java Swing.
Java Swing
最近では「JavaFX」でも画面を作成することができるので「Swing」とどちらを使用するか悩んだのですが、テクノリジー的に歴史の長い「Swing」を使用することにしました。
Swingは大雑把に以下の要素で構成されています。
画面(JFrame, JDialog, JWindow), 画面の部品(JComponent)だいたいこれらのクラスを継承したクラス群を使用して画面の作成を行います。
詳細に関してはこちらをどうぞ。
作ってみよう!(Let's get started!)
シンプルに写経をするのが一番だと思います。
mport javax.swing.*;
import java.awt.*;
public class RpiCtlMain extends JFrame {
public static void main(String[] args) {
RpiCtlMain rpi = new RpiCtlMain(args);
}
/**
* コンストラクタ(Constructor)
* インスタンスを作る処理を行う。(Create instance)
*
* 1.プログラム引数を受け取る
* [0]:タイトル
*/
public RpiCtlMain(String[] args) {
// 親クラスのコンストラクタを呼び出す
// Call constructor of parent class
super();
// JFramewを作成するこのクラスが
// JFrameを継承しているのでこのクラスを作成する
// デフォルトの画面タイトル
this.setTitle("Hello RPi Swing!");
// プログラム引数がある時
if (args.length > 0) {
// 1個目の引数をタイトルにセット
this.setTitle(args[0]);
}
// コンポーネントを追加する
Container con = this.getContentPane();
con.add(new Label("Hello Swing ! This is Label"));
// 画面サイズ
this.setSize(500, 500);
// 画面が終了したらプログラムも終了する設定
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// パック(コンポーネントのサイズに合わせる)
this.pack();
// 表示設定をする(しないと何もおきずに終了してしまう
this.setVisible(true);
}
}
実行結果です。真ん中あたりにあるのは赤字になっているコードを入れた時と入れない時の差分です。※大きい方が赤字コードを入れないケースです。
ちなみにGITリポジトリからPULLできます。
https://github.com/ZenryokuService/RpiSwing
関連ページ
<ラズパイ関連>
- ラズパイ SSH接続メモ
- ラズパイ Under-voltage detected! 〜エラー対処〜
- ラズパイ(CUI)セットアップ
- RPi Settingup Wifi in CUI ~ラズパイ CUI Wifi接続~
- Memos about Settingup RPi ~使用したコマンドメモ~
- RPi and JavaFX sample of deployment 〜ラズパイにサンプルデプロイ〜
- RPi JavaFX execution ~ラズパイ JavaFX自動起動~
- RPi Install Git 〜ラズパイにGitのインストール〜
- RPi Java Swing〜ラズパイにJava Swingアプリを起動する〜 ※失敗しています。。。」
- RPi Install Git 〜ラズパイにGitのインストール〜
- RPi Maven Install 〜ラズパイでMeven〜
- Install XFCE4 on RPi 〜ラズパイに高速軽量デスクトップインストール〜