Jbuilderのプロジェクトの構成
- プロジェクトの構成
- プロジェクトフォルダ
Jbuilderでプロジェクトを生成すると、各種のフォルダやファイルが自動生成されます。プロジェクトのフォルダには.jpxと.htmlが生成されます。.ipxがプロジェクトを代表するファイルで、これをダブルクリックすると(対応付けが出来ていれば)、Jbuilderが立ち上がります。htmlはドキュメント用のwebファイルで、アプレットの起動はしません
- パッケージ
Jbuilderでは、プロジェクト名のパッケージを定義します。.javaのソースの先頭に先頭に
package <プロジェクト名>
が宣言されます。ソースやクラスファイルはこのパッケージ名のフォルダに保存されます。新規クラスを作成するとき、パッケージを指定できます。異なるパッケージを指定すると、ソースやクラスをフォルダで分類できます。
- srcフォルダ
ここに、ソースのjavaファイルが保存されます。プロジェクト名(パッケージ名)のフォルダの中に保存されます。
- classes
ここに実行用のファイルやフォルダを保存します。.htmlはアプレット起動用のhtmlファイルです。プロジェクト名のフォルダの内部に生成されたクラス(実行)ファイルが記録されます。標準では、.classはプロジェクト名のパッケージを宣言しています。
実行時に利用するファイルはこの classes フォルダに配置しますが、プロジェクト全体をリビルドすると、クラスファイルの内部のデータファイルまで、削除されてしまいます。必要なデータファイルは、プロジェクトの直下のフォルダにも保存しておいて下さい。
- bak
過去のソースファイルが指定回数だけ自動保存されてます。編集を間違えた場合、過去のソースファイルを取り出すことができます。不要であれば削除してもかまいません。
- プロジェクトのjavaプログラムの構成
- ソースプログラムの構成
自動生成されるJavaのソースプログラムの構成を簡単に紹介します。
- package
先頭にプロジェクト名でpackage宣言されます。Javaソースをコンパイル(make)すると、このpackage名のフォルダに実行用の.classファイルが生成されます。
したがって、アプレットでclassファイルを指定するとき、classファイルが記録されたフォルダを指定する必要があります
- import
importでプログラムに必要なクラスの利用を宣言します。applet以外に、awt(部品)関連のpackageのimportが必要です。
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
- クラス宣言、変数
以下のようにクラスが宣言されます。
public class Applet1 extends Applet {...}
また、部品配置などを行うと、必要な変数が自動生成されます。
boolean isStandalone = false;//スタンドアロンのフラグです
Button button1 = new Button();//ボタンの生成
- メソッド
アプレットを作成した場合、以下のメソッドが自動生成されます。
- init()メソッド
部品の配置を行うjbInit()を呼び出します。この呼び出しを変更すると、部品の配置が出来ません。
- jbInit()メソッド
部品配置を行うメソッドで、部品配置を行うと自動生成されます。以下に例を示します。
private void jbInit() throws Exception {
button1.setLabel("button1");//ボタンのラベル
button1.setBounds(new Rectangle(132, 188, 81, 30));//ボタンのサイズ
this.setLayout(null);//Layouit方式の設定
this.add(button1, null);//ボタンの配置
}
- getParameterInfo()メソッド
アプレットのパラメータを指定したとき、ここに組み込まれます。htmlからのパラメータの取得で利用するメソッドです。
- start、stop()メソッド
ウイザードで「標準メソッド生成」をチェックすると、自動生成されます。アプレットの開始と終了時に呼び出されるメソッドです。
- paint()メソッド
ウイザードで「標準メソッド生成」をチェックすると自動生成されます。グラフィックスメソッドで画面に表示をします。repaint()で再描画を行います。このメソッドは システムから再描画の要請があると自動的に呼び出されます。このメソッドで描画していないグラフィックは、(ウインドウが隠れた後)再描画が行われると描画されません。
- main()メソッド
ウイザードで「スタンドアロン」をチェックすると自動再生されます。アプレットとして利用する場合は無害です。main()があると、アプレットでなく、標準のJavaプログラムとしても実行できます。
- 他のシステムで作成された.javaソースの利用
他のシステムで作成されたjavaソースファイルは、Jbuilderで作成したソースにコピーすれば、コンパイルや実行は可能です。ただし、一般的には、設計タブでGUI部品を再配置することはできません。ただし、Jbuilderで生成される形式にソースを編集すれば、部品を再配置可能になります。
具体的には、先頭で部品をnewで作成し、init( ) で、jbinit() を呼び出し、jbinit()内で部品の設定や配置を行います。自動レイアウトでの配置にも対応します。
多くの例で確認していますが、複雑な自動配置をした場合、対応できないかもしれません。
- MSC++のダイアログ方式プログラム(MFC)との関連
- 類似点
- レイアウト
どちらも、ウインドウにコントロール(コンポーネント)を貼り付け、メッセージ(イベント)により実行を行う、GUI(対話)形式のプログラム作成ができます。
- 関数起動
メッセージ(イベント)により関数(メソッド)が起動されます。
初期化用の関数(iInitDialog、init)、再描画用の関数(OnPaint、paint)があります。
- クラスの利用
また、プログラムの構造にクラスの概念を導入しています。
- 異なる点
- コントロール(コンポーネント)の配置情報
MFCでは配置情報はリソースファイルに記録されますが、Jbuilderの場合は配置用の関数呼び出しが、jbinit( )関数に生成されます。
- メッセージ(イベント)駆動
MFCの場合特殊なマクロでメッセージによる関数駆動が記述されますが、Jbuilderの場合addActionListener()関数により、通常の関数で情報が渡されます。
- 汎用性・起動時間
MFCの場合、動作するPCが限定され98系やNT系でも処理が異なる場合があります。Jbuilderの場合windows以外にLinuvやMACなど、幅広いOSで実行が可能です。ただし、起動時間や処理時間が長くなります。