【コラム】
第7回は、Javaで書いたHello Worldです。Javaのプログラムは、JavaアプリケーションとJavaアプレットに分けて考えることができます。JavaアプレットはWebブラウザ上で実行されるプログラムですが、JavaアプリケーションはOS上からコマンドとして起動されるプログラムです。
JavaアプリケーションのHello Worldは、リスト1のように、print()メソッドを使って文字列を出力すればOKです。このように、Javaアプリケーションはmain()メソッドから実行が開始されます。System.outは標準出力を意味します。なお、print()では改行コードは付加されないため、文字列の終端に"\n"を付けておきます。
public class JavaApplicationPrint { ← クラスの定義を開始
public static void main(String[] args) { ← main()メソッド開始
System.out.print("Hello World\n"); ← print()でメッセージ出力
}
}
リスト2のように、print()の代わりにprintln()メソッドを使えば改行コードが付加されるため、文字列に"\n"を付ける必要はありません。
public class JavaApplicationPrintln {
public static void main(String[] args) {
System.out.println("Hello World"); ← println()なら改行コードは不要
}
}
Javaのプログラムは、実行例1のようにjavacコマンドを使ってコンパイルします。コンパイルに成功すると、「拡張子.class」のクラスファイルが作成されます。Javaアプリケーションの実行にはjavaコマンドを使い、引数にクラス名(拡張子.classは付けない)を指定します。
$ javac JavaApplicationPrint.java ← javacで、Javaのソースをコンパイル
$ ls *.class ← 拡張子.classのファイルを確認
JavaApplicationPrint.class ← 確かにコンパイルされている
$ java JavaApplicationPrint ← javaコマンドを使ってクラスファイルを実行
Hello World ← 確かにHello Worldが表示される
$ ← シェルのプロンプトに戻る
Javaアプリケーションは、テキストベースでの動作だけでなく、ウィンドウベース(GUI)でも動作します。リスト3はGUIのJavaアプリケーションです。このプログラムをjavacでコンパイルし、javaコマンドでクラスファイルを実行すると、図1のようなウィンドウが立ち上がるはずです。メッセージはウィンドウの中に表示されます。ウインドウタイトル部分に表示されているHello Worldは、フレームのタイトル文字列です。
なお、このプログラムには終了のためのコードがないため、コマンドラインに[Ctrl]+[C]を入力するなどして終了してください。
import java.awt.*; ← GUIを使うために必要
public class JavaGuiHello {
public static void main(String[] args) {
Frame f = new Frame("Hello World"); ← フレームを作成(タイトル付き)
f.setLayout(new FlowLayout(FlowLayout.CENTER, 0, 30)); ← ほぼ中央に配置
f.setSize(200, 100); ← フレームのサイズを指定
f.add(new Label("Hello World")); ← ラベルでメッセージを貼り付ける
f.setVisible(true); ← フレームを可視状態にする
}
}
|
|
図1 GUIのJavaアプリケーション |
JavaアプレットのHello Worldはリスト4のとおりです。このように、Javaアプレットのプログラムにはmain()がありません。メッセージは、paint()メソッドの中でdrawString()を使って描画します。
import java.applet.*; ← アプレットを使うために必要
import java.awt.*; ← GUIを使うために必要
public class JavaAppletHello extends Applet { ← Appletクラスを継承
public void paint(Graphics g) { ← paint()メソッド開始
g.drawString("Hello World", 60, 50); ← メッセージを描画(座標も指定)
}
}
Javaアプレットを実行するためには、HTMLファイルが必要です。最低限の記述を行ったHTMLファイルはリスト5のとおりです。このように<applet>タグを使い、その属性値でクラスファイルと表示サイズを指定します。
<applet ← <applet>タグ開始
code="JavaAppletHello.class" ← code属性でクラスファイルを指定
width=200 height=100> ← width/height属性で表示サイズを指定
</applet> ← <applet>タグ終了
このHTMLファイルを、Webブラウザまたはappletviewerコマンド(実行例2)で開けば Javaアプレットが実行されます(図2)。
$ appletviewer JavaAppletHello.html ← コマンドラインからappletviewerを実行
|
|
図2 appletviewerによるJavaアプレットの表示 |
プログラムを工夫することにより、JavaアプリケーションとしてもJavaアプレットとしても動作するようにすることができます(リスト6)。このプログラムは、Javaアプレットとして起動された場合はpaint()メソッドのみが実行され、通常のJavaアプレットとして動作します。Javaアプリケーションとして起動された場合は、まずmain()メソッドが実行され、この中で自分でアプレットを作成し、サイズを指定して画面表示を行っています。
なお、Javaアプレットとして起動する場合は、通常のJavaアプレットと同様にHTMLファイルが必要です。
import java.applet.*;
import java.awt.*;
public class JavaGuiApplet extends Applet {
public void paint(Graphics g) { ← Javaアプレットのpaint()
g.drawString("Hello World", 60, 50); ← メッセージを描画
}
public static void main(String[] args) { ← Javaアプリケーション用main()
Frame f = new Frame("Hello World"); ← フレームを作成
Applet a = new JavaGuiApplet(); ← 自分でアプレットを作成
f.setSize(200, 100); ← フレームのサイズを指定
f.add(a); ← フレームにアプレットを貼る
f.setVisible(true); ← フレームを可視状態にする
}
}
| 理研、脳・脊髄形成に必要な神経板湾曲の仕組みを解明 [20:16 5/25] |
| 京大、「慢性閉塞性肺疾患」患者の労作時呼吸困難は鍼治療が有効と実証 [20:08 5/25] |
| 120Hz SHVカメラ用イメージセンサーを使った撮像装置 - SHVフルスペック化へ [18:10 5/25] |
| 京大、視覚による物体認知は前頭前野からのトップダウン信号が重要と確認 [17:45 5/25] |
| 製品数の拡大だけでなくBCPの展開なども含めた総合力で事業の強化を図るTI [17:25 5/25] |
|
【連載】これだけは要チェック! TOEIC(R)単語帳 第108回 今回のお題は…「issue」 [20:00 5/27] キャリア |
|
TVアニメ『ペルソナ4』、新規カットを加えた再編集版を劇場でイベント上映 [20:00 5/27] ホビー |
|
[9nine]制服姿見納め? セーラー服で登場も川島海荷「4人はコスプレ」 [19:15 5/27] エンタメ |
|
「NO.6」4巻は書き下ろしドラマCD付、木乃のサイン会も [18:49 5/27] ホビー |
|
[今週の新刊]マンガ大賞3回ノミネート「アイアムアヒーロー」 カープ愛「球場ラヴァーズ」も [18:33 5/27] ホビー |
4つの診断で、自分の適性を見つめなおそう!
働くこと・挑戦し続けることへの思いを綴ったインタビュー
あなたにピッタリのアドバイスを読むことができます。
転職に必要な情報が収集できます
企業からアプローチのメッセージが届きます。