Jbuilderのプロジェクトの構成

  1. プロジェクトの構成

    1. プロジェクトフォルダ
      Jbuilderでプロジェクトを生成すると、各種のフォルダやファイルが自動生成されます。プロジェクトのフォルダには.jpxと.htmlが生成されます。.ipxがプロジェクトを代表するファイルで、これをダブルクリックすると(対応付けが出来ていれば)、Jbuilderが立ち上がります。htmlはドキュメント用のwebファイルで、アプレットの起動はしません

      1. パッケージ
        Jbuilderでは、プロジェクト名のパッケージを定義します。.javaのソースの先頭に先頭に
         package <プロジェクト名>
        が宣言されます。ソースやクラスファイルはこのパッケージ名のフォルダに保存されます。新規クラスを作成するとき、パッケージを指定できます。異なるパッケージを指定すると、ソースやクラスをフォルダで分類できます。
      2. srcフォルダ
        ここに、ソースのjavaファイルが保存されます。プロジェクト名(パッケージ名)のフォルダの中に保存されます。

      3. classes
        ここに実行用のファイルやフォルダを保存します。.htmlはアプレット起動用のhtmlファイルです。プロジェクト名のフォルダの内部に生成されたクラス(実行)ファイルが記録されます。標準では、.classはプロジェクト名のパッケージを宣言しています。
         実行時に利用するファイルはこの classes フォルダに配置しますが、プロジェクト全体をリビルドすると、クラスファイルの内部のデータファイルまで、削除されてしまいます。必要なデータファイルは、プロジェクトの直下のフォルダにも保存しておいて下さい。

      4. bak
        過去のソースファイルが指定回数だけ自動保存されてます。編集を間違えた場合、過去のソースファイルを取り出すことができます。不要であれば削除してもかまいません。

    2. プロジェクトのjavaプログラムの構成

      1. ソースプログラムの構成
        自動生成されるJavaのソースプログラムの構成を簡単に紹介します。

      2. package
        先頭にプロジェクト名でpackage宣言されます。Javaソースをコンパイル(make)すると、このpackage名のフォルダに実行用の.classファイルが生成されます。 したがって、アプレットでclassファイルを指定するとき、classファイルが記録されたフォルダを指定する必要があります

      3. import
        importでプログラムに必要なクラスの利用を宣言します。applet以外に、awt(部品)関連のpackageのimportが必要です。
         import java.awt.*;
         import java.awt.event.*;
         import java.applet.*;

      4. クラス宣言、変数
        以下のようにクラスが宣言されます。

         public class Applet1 extends Applet {...}

        また、部品配置などを行うと、必要な変数が自動生成されます。
         boolean isStandalone = false;//スタンドアロンのフラグです
         Button button1 = new Button();//ボタンの生成

      5. メソッド
        アプレットを作成した場合、以下のメソッドが自動生成されます。

        1. init()メソッド
          部品の配置を行うjbInit()を呼び出します。この呼び出しを変更すると、部品の配置が出来ません。

        2. 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);//ボタンの配置
          }
        3. getParameterInfo()メソッド
          アプレットのパラメータを指定したとき、ここに組み込まれます。htmlからのパラメータの取得で利用するメソッドです。

        4. start、stop()メソッド
          ウイザードで「標準メソッド生成」をチェックすると、自動生成されます。アプレットの開始と終了時に呼び出されるメソッドです。

        5. paint()メソッド
          ウイザードで「標準メソッド生成」をチェックすると自動生成されます。グラフィックスメソッドで画面に表示をします。repaint()で再描画を行います。このメソッドは システムから再描画の要請があると自動的に呼び出されます。このメソッドで描画していないグラフィックは、(ウインドウが隠れた後)再描画が行われると描画されません。

        6. main()メソッド
          ウイザードで「スタンドアロン」をチェックすると自動再生されます。アプレットとして利用する場合は無害です。main()があると、アプレットでなく、標準のJavaプログラムとしても実行できます。

    3. 他のシステムで作成された.javaソースの利用
       他のシステムで作成されたjavaソースファイルは、Jbuilderで作成したソースにコピーすれば、コンパイルや実行は可能です。ただし、一般的には、設計タブでGUI部品を再配置することはできません。ただし、Jbuilderで生成される形式にソースを編集すれば、部品を再配置可能になります。
       具体的には、先頭で部品をnewで作成し、init( ) で、jbinit() を呼び出し、jbinit()内で部品の設定や配置を行います。自動レイアウトでの配置にも対応します。
       多くの例で確認していますが、複雑な自動配置をした場合、対応できないかもしれません。

  2. MSC++のダイアログ方式プログラム(MFC)との関連
    1. 類似点
      1. レイアウト
        どちらも、ウインドウにコントロール(コンポーネント)を貼り付け、メッセージ(イベント)により実行を行う、GUI(対話)形式のプログラム作成ができます。

      2. 関数起動
        メッセージ(イベント)により関数(メソッド)が起動されます。
        初期化用の関数(iInitDialog、init)、再描画用の関数(OnPaint、paint)があります。

      3. クラスの利用
        また、プログラムの構造にクラスの概念を導入しています。

    2. 異なる点
      1. コントロール(コンポーネント)の配置情報
        MFCでは配置情報はリソースファイルに記録されますが、Jbuilderの場合は配置用の関数呼び出しが、jbinit( )関数に生成されます。

      2. メッセージ(イベント)駆動
        MFCの場合特殊なマクロでメッセージによる関数駆動が記述されますが、Jbuilderの場合addActionListener()関数により、通常の関数で情報が渡されます。

      3. 汎用性・起動時間
        MFCの場合、動作するPCが限定され98系やNT系でも処理が異なる場合があります。Jbuilderの場合windows以外にLinuvやMACなど、幅広いOSで実行が可能です。ただし、起動時間や処理時間が長くなります。