最終更新日:

Chapter3
初めて作るJavaアプリケーション
JBuilder 7編

3-1 JBuilder付属のサンプルプログラムで使い方を覚えよう

JBuilderには、サンプルのプログラムがいくつか付属しています。それらを実際に呼び出して、実行してみることにします。いろいろなサンプルが付属しているので、これを使えばJBuilderの一通りの作業を経験できます。では、実行させて…と言いたいところですが、この実行ということが言葉では説明しづらく、結果的に見ても理解しづらいものです。ここでは具体例をあげて説明しましょう。

(応用情報処理Vの講義では、一部この通りの手順では作業できません。学校でのシステムにある制限があるからです。そのため、JBuilder 7のフォルダの、Samples¥Swingというフォルダを、自分のホームフォルダにマイドキュメント内にあらかじめしておいてください。講義では、一緒に作業をしましょう。)

1スタートメニューの「すべてのプログラム」に「Borland JBuilder 7 Personal」という項目があります。そこから表示されるメニューにある「Borland JBuilder 7 Personal」を選択します。(スタートメニューの構成は使用するシステムにより異なります。)

2起動するまで、JBuilderと大きく書かれたパネルが表示されます。これが出ている間は起動作業を行っているので、そのまま待ちます。

3JBuilderが起動しました。最初に「ワンポイント」というウインドウが表示されています。これはJBuilderの使い方やTipsなどをウインドウで表示するものです。必要に応じて読みますが、先の作業に進むためには「閉じる」ボタンをクリックしてください。もし、起動時に「ワンポイント」の表示が不要であれば、「次回の起動時もワンポイントを表示する」のチェックをオフにしてから「閉じる」ボタンをクリックしてください。

4JBuilderが起動しました。メニューバーやツールバーが上部にあり、ウインドウの中は大きく分けて2つの領域があります。ウインドウの大きさや、は、使用しているコンピュータに応じて適当に大きくしたり小さくしたりして使ってください。また、2つの領域の中間をドラッグして、境界線の位置を移動することもできます。

5「ファイル」メニューから「プロジェクトを開く」を選択します。“プロジェクト”とは、あるソフトウエアを作るのに必要なさまざまな素材全体を指す言葉ですが、それらの素材はたくさんのファイルとしてフォルダにまとめられて管理されています。その素材全体を管理するファイルとして“プロジェクトファイル”があり、そのプロジェクトファイルを開くことで、プログラム作成作業に必要なものが呼び出されて、JBuilderは作業可能な状態にセットアップされます。

6プロジェクトを選択するウインドウが表示されました。最初はWelcomeという項目が選択されています。

7Welcomeという項目と同じ階層にSwingという項目があります。必要に応じて左側のリストをスクロールし、その項目を選択します。Swingの左側にある「+」の部分をクリックして、Swingのさらに下位のフォルダをリストします。そこにあるTabbedPaneをクリックして選択すると、右側にTabbedPane.jpxという項目が表示されます。この状態を確認してOKボタンをクリックします。TabbedPane.jpxがプロジェクトファイルであり、.jpxがプロジェクトファイルの拡張子です。(応用情報処理Vの講義では、マイドキュメントにコピーしたSwingフォルダの内容を開きます。)

8プロジェクトが開かれました。左側の領域の上半分のところ(ここを「プロジェクト」ペインと呼びます)にプロジェクトファイル名が見えます。ここはプロジェクトの中のさまざまなものをリストアップします。右側は、プロジェクトの中にあるファイルの内容などを参照したり編集するためのペインになっています。プロジェクトペインにあるFrame1.javaをダブルクリックしてみてください。すると、右側に、Frame1.javaのファイルの内容が表示されます。これが「プログラム」の一部です。このような命令群を自分が意図するような動作になるように作るのがプログラミング作業です。

プログラムを実行する

いよいよこのプログラムを実行してみます。このプロジェクトでいえば、「実際に作ったプログラムを1つのアプリケーションとして機能させるようにする」ことを実行といいます。

1ツールバーにある「プロジェクトの実行」ボタンをクリックします。

2 「ビルド状況」というダイアログボックスが出た後、少し待つと、小さなウインドウが表示されます。オプションボタンが並ぶウインドウが見えています。JBuilderのウインドウはさらに下の部分が分割されて新しい領域が出ていますが、ここは「メッセージペイン」と呼びます。実行したときにはこのペインが表示されて、状況を報告できるようになっています。また、Windowsのタスクバーをみると、「Tabbed Pane Sample」と書かれたボタンが増えていて、Tabbed Paneが1つのアプリケーションとして稼働していることがわかります。

3jRadioButton1などのボタンをクリックして、実際に選択したりあるいは切り替えたりができることを確認します。また、Tab 2やTab 3など選択されていないタブをクリックして、他のタブも見てみましょう。場合によってはキー入力を受け付ける場所もあります。いずれにしても、非常に簡単ですが、1つのアプリケーションソフトとして動いていることがわかります。

4ウインドウの右上の閉じるボタンをクリックして終了します。

プログラムとコンパイル

サンプルにあるApplication1.javaやFrame1.javaは、人間が読めるほうのプログラムですが、これをコンパイラを利用して、Java VMが理解できるプログラムに変換します。コンパイラはJBuilderに組み込まれていると考えれば良いでしょう。人間が読めるプログラムは「ソース」という言い方をしますが、これに対してCPUなど機械が理解できる形式のプログラムは「バイナリ」とか「オブジェクトコード」という言い方をします。

バイナリというのは、ソースがテキストであるのに対して、コンパイル結果はテキストではないところから来ているのですが、画像データのように「バイナリ」データだからと言って必ずしもプログラムとは限りません。ただ、そういう言い方をすることは知っておくとよいでしょう。「オブジェクトコード」というのが適切な表現なのですが、他に「オブジェクト」という用語もあとから出てきます。「オブジェクト」はまったく異なる概念を指し示す用語で、しかもJavaの根幹にかかわるものなので、さらに面倒です。だから、あえて、コンパイル結果は「オブジェクトコード」と“コード”を付けることにします。人間の読めるほうを「ソースコード」と言うこともよくあります。

プロジェクトと作成されるファイルについて

まずはサンプルとして用意されているものを使ってみましたが、JBuilderではこのように、プログラムの作成から実行、その他さまざまな作業を1つのアプリケーションの中でできるようになっています。そのため、とにかく、JBuidlerを呼び出して作業をするだけでいいという意味で、「統合開発環境」といった言い方もされています。だから、JBuilderの使い方をある程度マスターした上でプログラムを行なうという必要があります。JBuilderにはたくさんの機能があり、本書ではその全ては残念ながら紹介はできませんが、ポイントになる作業は折に触れて説明することにしましょう。

まず、最初に「プロジェクト」というものを説明しておきます。この書籍で説明するようなプログラムは短いもので、1つのファイルに収まっていますが、本格的なアプリケーションソフトだと、プログラムを記述したファイルを大量に用意することになります。また、プログラムのファイル以外に、ソフトウエアの作成では画像ファイルや、データのファイルなどたくさんのファイルが必要になります。それらを効率的に管理する必要がありそれが開発ツールの大きな仕事の1つと言っていいでしょう。たくさんのファイルが必要だとして、それらを1つ1つ呼び出すのは大変です。そこで、それらさまざまなファイルを統合して扱えるように「プロジェクト」という1つの文書ファイルを利用します。そこの中に、作成しているソフトウエアに必要なファイルを登録しておき、手軽に呼び出せるようにするのです。プログラマは、作業を始めるにはプロジェクトファイルを1つ呼び出すだけでいいということになります。

プロジェクトは、それに加えて、実際に作り上げるソフトウエアに関するさまざまな設定も行ないます。たとえば、アプリケーションなのさらに別の形態なのか、実行形式のファイルはどこにどんな名前で作るのかなど、ソフトウエアの最終的な形を整えるのに必要な情報も含まれます。また、その他の情報も記録されるのですが、開発ツールを使う上ではここまでに説明してきた内容が含まれているということを意識してもらえればいいでしょう。

3-2 自分でプロジェクトを作成する

サンプルプログラムを動かしても、自分でプログラムを作っているという実感は薄いかもしれません。さっそく、自分でプログラムを作成してみましょう。まずは、自分で作るプログラムのプロジェクトを用意します。次のように操作してみましょう。

1JBuilderのツールバーのいちばん左にある「新規」ボタンをクリックします。

2 「オブジェクトギャラリ」というダイアログボックスが表示されます。ウインドウ上部のタブで「プロジェクト」を選択し、さらにそこで表示される「プロジェクト」のアイコンをクリックして、OKボタンをクリックします。

3作成するプロジェクトに関する設定を行うウィザードが出てきます。ここでは「名前」として「FirstJava」とキー入力してください。他の部分は変更しなくても基本的には大丈夫です。「ディレクトリ」として指定されたパスに「FirstJava」というフォルダが作成されてそれがプロジェクトフォルダになります。ディレクトリには、ホームディレクトリ内のjbprojectフォルダが指定されていますが、必要ならそのフォルダについても変更してください。(応用情報処理Vの講義を行う状況では、ホームフォルダにjbprojectフォルダが作られるはずです。)「次へ」ボタンをクリックします。

4さまざまな設定ができますが、ここは自動的に適切なものが設定されているので、そのまま「次へ」をクリックします。(応用情報処理Vの講義では、「出力パス」から「作業ディレクトリ」まではマイドキュメント内(H:¥jbuilder¥*)に確保します。)

5プロジェクト情報を記載するダイアログボックスになります。これらは、プログラムの実行には関係ありませんが、ファイルの中に残るものです。ここはそのままにして、「終了」ボタンをクリックします。

6新たに作成されたプロジェクトが開きました。初期状態はプロジェクトのペインが見えているだけです。

こうしてプロジェクトのファイルが作成されますが、上記の手順だと、そのフォルダは手順3で記述されているディレクトリに作成されます。以上のような流れでは、起動ディスク(ここではC)のホームフォルダ(ここでは、「C:¥Documents and Settings¥msyk」でmsykはログインユーザ名)にjbprojectというフォルダが作られ、そこにFirstJavaフォルダが作られています。(応用情報処理Vの講義を行う状況では、ホームフォルダにjbprojectフォルダが作られるはずです。)ファイルのありかは確認しておくと良いでしょう。

アプリケーションをプロジェクトに追加する

作成したプロジェクトには、実行するプログラムは何も入っていません。ここで、アプリケーションをプロジェクトに追加して、実行するプログラムを作成します。アプリケーションを1から作ってもかまわないのですが、JBuilderではアプリケーションのひな形を作成する機能がありますので、こうした機能を利用すると少しでも作業は楽になります。前の手順で作ったFirstJava.jpxというプロジェクトが開いている状態で、以下のように作業を行ないましょう。

1ツールバーの「新規」ボタンをクリックします。 「オブジェクトギャラリ」が開くので、「一般」のタブを選択し、アイコンの中にある「アプリケーション」をダブルクリックするか、クリックして選択しOKボタンをクリックします。

2 「アプリケーションウィザード」が起動します。最初のダイアログボックスでは、「クラス」として、「DisplayMyName」をキータイプします。その他の設定については、変更しないで「次へ」ボタンをクリックしてください。(ここで「終了」ボタンをクリックして、以下の手順を飛ばしてもかまいません。)

3ウィザードの2番目のダイアログボックスが出てきます。ここでの「クラス」が後で重要な名前になります。とりあえず既定値の「Frame1」のままにし、ここでは何もせずに「次へ」をクリックします。

4ウィザードの3番目のダイアログボックスが表示されます。ここでも設定は変更する必要はありません。「終了」ボタンをクリックします。

5プロジェクトにアプリケーションが追加されやや変化はありますが、一見するとわかりづらいところでしょう。まず、右側の広いペインに、「Frame1」というタブが見えていますが、これがアプリケーションウィザードの2つ目のダイアログボックスで示した「クラス名」と同じものです。このFrame1は、プログラムの固まりを意味する名前として、このプロジェクトの中では使われます。左側の領域が上下に分割されており、その下側の「構造」ペインでも、最上位の項目としてFrame1が見えています。

6スクロールしていちばん最後の部分に図のようにテキストを加えます。{ から } までの間にプログラムを追加します。「フレームタイトル」と書かれている行以下に、新たにプログラムを追加することになります。プログラムの入力の方法については、手順の後の本文も参照してください。なお、追加する部分に、名前と日付がありますが、ここはこのページに見えているその通りではなく、自分の名前と今日の日付で入力しましょう。

修正前の状態
//コンポーネントの初期化
private void jbInit() throws Exception {
	//setIconImage(Toolkit.getDefaultToolkit().createImage( …
	contentPane = (JPanel) getContentPane();
	contentPane.setLayout(borderLayout1);
	setSize(new Dimension(400, 300));
	setTitle("フレーム タイトル");
}
修正後の状態
//コンポーネントの初期化
private void jbInit() throws Exception {
	//setIconImage(Toolkit.getDefaultToolkit().createImage( …
	contentPane = (JPanel) getContentPane();
	contentPane.setLayout(borderLayout1);
	setSize(new Dimension(400, 300));
	setTitle("フレーム タイトル");

	JLabel text1 = new JLabel("これを作ったのは新居雅行です。");
	JLabel text2 = new JLabel("今日は2007年10月8日です。");
	JPanel jp =new JPanel();
	jp.add(text1);
	jp.add(text2);
	getContentPane().add(jp);
}

8ツールバーの「プロジェクトの実行」ボタンをクリックします。プログラムに間違いがなければ、プログラムが別のウインドウで実行します。ウインドウ上に手順6と7で自分で打ち込んだ文字列が実際に表示されているのを確認してください。プログラムを終了するにはウインドウのタイトルバー右端にある「閉じる」ボタンをクリックします。

プログラムの内容をすべて理解する必要はありません。ここでは、自分の手で打ち込んだ文字列が、実際に新たに起動するアプリケーションの中で見えているということに注目して下さい。つまり、自分でアプリケーションを作ることができるというのがポイントになります。

左側の「プロジェクト」ペインでは、FirstJava.jpxの下に項目が加わっていますが、ここで、2つのファイルがあります。ここでは、Frame1.javaだけを修正しました。なぜ2つのファイルがあるのかということなどは追々説明しますが、ウインドウを表示するのがFrame1、アプリケーション全体の管理をするのがここでのDisplayMyName.javaと考えておけばよいでしょう。

プログラムを入力するときの注意

プログラムの文字を入力するときには、半角と全角の違いを明確に意識してください。同じスペースでも、半角ならよいのですが、全角のスペースだと間違ったプログラムと判断されることがあります。また、不等号などの記号も、半角と全角ではまったく意味が違ってきます。なお、この書籍で説明するJavaのプログラムでは、” ”で囲われた文字列(次の章で説明をします)の中身と、//よりあとや、/*〜*/で囲まれたコメントという部分以外では、全角文字はまずほとんど出てこないと思ってかまいません。上記のプログラムでも、” ”で囲まれた部分以外は全部半角です。とにかく細心の注意をしてください。

同様に、大文字と小文字も明確に区別をしてください。Windowsを使っていると、ファイル名は大文字と小文字の区別をしないだけに、使う側もあまり意識しません。大文字か小文字かをしっかり指定することはありませんし、ほとんどはその必要がありません。しかし、Javaのソースプログラム中では、大文字と小文字は明確に区別されます。DisplayMyNameと、displayMyNameは別のものだと区別するのがJavaの世界なのです。

1行1行の区切り、つまり改行をEnterキーで入力するのは、普通にワープロなどの作業を行っているときと同様です。Javaのプログラムでは、1つのプログラムのまとまりを、パッと見てわかりやすくするために、インデントをかけたり、空白の行を使います。このプログラムだと、3〜6行目が1つの固まりで、4、5行目がさらにその固まりの中の1つの固まりであるというようなことが目で見て判別しやすくなります。プログラムに独特の記述方法ですが、追々慣れていってください。このインデントはTabないしはスペースを使います。ただし、全角のスペースはダメです。改行すると、前の行と同じだけのインデントが必ず設定されるようになっているので、必ずしもすべての行でTabキーでインデントを設定する必要はありません。場合によってはTabやスペースを削除して、インデントを少なくする必要もあるかもしれません。いずれにしても、表示される結果を見ながら、プログラムを入力していってください。

せっかくですから、4行目は私の名前ではなく、読者の方のご自分の名前を入力してください。5行目の日付も今日の日付にしましょう。ピリオドとカンマ、セミコロンとコロンは間違いやすいので注意してください。()だけでなく{}があるのもおわかりでしょうか。しつこいようですが、いずれも半角です。カッコ類はきちんと対応がとれるようにプログラムを組みます。

3-3 プロジェクトの中身をみてみる

実際に、プロジェクトの中身を見てみましょう。ソフトウエアを作るにはたくさんのファイルを作ることになることは説明しましたが、そうしたファイルを効率的に管理するには、当然ながらフォルダに入れるというのが基本的な方針になります。JBuilderでも、プロジェクトとそれにかかわるファイルなどを、1つのフォルダにまとめるというのが基本的な方針です。ここで作ったFirstJavaフォルダをエクスプローラで見てみます。ユーザのホーム以下、jbprojectフォルダにあるFirstJavaフォルダがその「プロジェクトフォルダ」に相当するものですが、そのプロジェクトフォルダのいちばん上位の階層に、プロジェクトファイルの「FirstJava.jpx」があります。プロジェクトファイルの拡張子は.jpxです。

プロジェクトフォルダのいちばん上位の階層

そして、プロジェクトフォルダ内のsrcフォルダに、Javaで書かれたプログラムのソースファイルが入れられます。ここでは、firstjavaフォルダがあって、DisplayMyName.javaと、Frame1.javaというプログラムファイルがあります。プログラムファイルは、.javaという拡張子を持ち、内容はテキストです。この2つのファイルは、前の手順で、JBuilderの中で参照できました。中身は実は単なるテキストファイルです。

ソースファイルが入れられているフォルダ

わざわざフォルダに分けないといけないのかと疑問に思うかもしれませんが、ここではこれはあまり気にしないでください。こうした階層化によって、ソースファイルの中の記述の有効範囲などを規定できるのですが、本書で作成するくらいのプログラムだと、そこまで気にする必要はありません。また、フォルダの階層は自分で作る必要はまずないので、とにかくこうなっているのだと思っておくだけで支障はないでしょう。

次に、classesというフォルダの以下の階層を見て下さい。その中には、ソースファイルと同じファイル名だけども、拡張子が.classとなっているファイルが見えています。これが、実はJava VMで実行可能な形式のオブジェクトコードが入ったファイルです。つまり、これがプログラムの本体です。Windowsだと、.exeというファイルに決められた形式で、Intel系CPU(Pentiumなど)で実行可能なもの(オブジェクトコード)が入れられていて、Windowsから呼び出すことで、ワープロやペイントソフトが稼動します。それと同じようなもので、Javaの世界では、Java VMという仮想コンピュータで実行できる形式のもの(オブジェクトコード)を、.classファイルに入れて実行するというのが基本です(異なる形式もあります)。この、.classファイルは、JBuilderが、.javaファイルからコンパイルすることによって自動的に生成されます。ソースプログラムから実行可能なものを生成することを「コンパイル」と呼びますが、実行する前に自動的にコンパイルを行ないます。コンパイルと実行は別々にできるのですが、それはコンパイルに時間がかかるような大規模なソフトウエアの場合に使われる手法です。少々のサイズのものなら、いきなり実行しても、さほど待たされることはありません。

コンパイルした結果が入っているフォルダ

プロジェクトの切り替えと呼び出し

別の機会にJBuilderを起動した場合、通常は終了時に開いていたプロジェクトが再度開かれますので、そのままプログラム作業の続きに取りかかれます。今後、たくさんのプロジェクトを切り替えて使うという状況になった場合には、プロジェクトペインのツールバーにある、プロジェクトファイル名の見えている部分がドロップダウンリストになりますので、過去に開いたことがあるプロジェクトはここにリストとして項目が出てきます。

「プロジェクト」ペインのツールバーにあるドロップダウンリストから選択して別のプロジェクトを開く

また、1段目のツールバーの「開き直す」ボタン(左から3つ目)をクリックすると、以前に開いたプロジェクトやファイルが一覧されます。区切り線の上側にプロジェクトが並んでいるので、それを選択してもかまいません。

それでも項目が見当たらない場合には、サンプルのプロジェクトを呼び出した時のように、「ファイル」メニューの「プロジェクトを開く」を利用します。

ファイルへの保存はおおむね自動的に行なわれる

入力したプログラムは、もちろん独立したファイルに記録されているので、保存の必要があります。しかしながら、プログラムの実行を行なった時にJBuilderは自動的に保存を行なうので、ソースプログラムを書き換えて保存する作業は、ほとんどする必要はないと言って良いでしょう。プロジェクトの内容に変更が発生したときも保存は必要ですが、JBuilderを終了する時に保存するかどうかをたずねるので、そのときに保存を指定しておけばかまいません。本来はファイルへの保存に細心の注意が必要なのですが、こうした面倒なことはJBuilder側で自動的にやってくれると思っておいてもおおむね問題はないでしょう。

この章のまとめ

非常に簡単ではありますが、ともかく1からプログラムを作成して、それをコンパイルして実行してみました。また、Webブラウザ上でも実行してみました。文字数をもっと長く入れた方は、もしかすると見え方が違ってくるかもしれませんが、ともかく、自分でタイプした文字がプログラムとして実行されて画面に表示されました。来週から、少しずつプログラムが複雑にはなりますが、ソースファイルにプログラムを作成し、コンパイルして実行するという手順は変わりません。今週だけでプログラミングの作業は、ひととおりやったわけです。

練習問題

3-1: 自分で作ったプロジェクト「FirstJava」のプログラムにおいて、自分の名前と日付ではなく、自分の所属する大学名と、自分の所属する学科学部名を表示するように、プログラムを修正してみてください。

3-2:「FirstJava」を実行したときのウインドウ名は「フレーム タイトル」になっています。今回追加したプログラムのすぐ上に、同様な文字列が見えていますが、プログラムのここの部分を別の文字列(なんでもいい)に書き換えて、ウインドウのタイトルが変わるかどうかを確認してみましょう。

3-3:プログラムの中に「setSize(new Dimension(400, 300));」という部分がある。この、400や300の数字を適当に変えてプログラムを実行するとどうなるかを調べてみましょう。この部分の数字にどんな意味があるか、実行結果から推測してみましょう。