FeaturesPluginsDocs & SupportCommunityPartners

NetBeans プラットフォーム 6.0 クイックスタートチュートリアル

このチュートリアルでは、Java コーディングを一切行なわずに HTML エディタを構築する方法を説明します。このチュートリアルの最後で、次のような HTML エディタができます。

スプラッシュ画面パネル

非常に簡単なデモアプリケーションですが、おもちゃではありません。コード補完、妥当性検査、事前定義済みの HTML スニペットなどの機能を備えた、HTML ページの簡単な編集をサポートする実際のプログラムです。

このチュートリアルで作成する HTML エディタは、「NetBeans プラットフォーム上」に構築されるリッチクライアントアプリケーションです。これは IDE のコア、つまり NetBeans プラットフォームがアプリケーションのベースになることを意味しています。NetBeans プラットフォーム上で必要なモジュールを追加し、IDE には必要だがアプリケーションでは必要のないモジュールを除外します。ここでは、NetBeans プラットフォームに追加される、ベースである IDE モジュールの一部が表示されます。

HTML エディタ

この HTML エディタを作成するということは、アプリケーションスケルトンを生成するということです。必要ないモジュールとユーザーインタフェース項目を除外し、IDE の起動時にデフォルトで開くウィンドウとして「お気に入り」ウィンドウを設定します。これらのアクティビティーはすべて、IDE のユーザーインタフェース要素でサポートされています。

NetBeans プラットフォーム上に各種機能を備えたアプリケーションを構築する、より正確にはアセンブルすることが、いかに単純で簡単であるかを自分で体験できます。最後に、WebStart を使用して簡単にダウンロードおよび起動できる最終製品の作成方法が表示されます。

注: それが単体の製品であっても、このチュートリアルのために NetBeans プラットフォームを別途ダウンロードする必要はありません。IDE でリッチクライアントアプリケーションを開発したあとで、アプリケーションにとって不要な IDE 特有のモジュールを除外します。

目次

このページの内容は NetBeans IDE 6.0 が対象です

モジュールの操作についての詳細は、NetBeans の Web サイトにある NetBeans 開発プロジェクトのホームページを参照してください。質問がある場合は、NetBeans 開発者の FAQ を参照するか、フィードバック用のリンクを使用してください。


作業の開始

開始する前に、コンピュータに次のソフトウェアをインストールしておく必要があります。


スケルトンアプリケーションの生成

NetBeans プラットフォーム上にアプリケーションを作成するときは、まずモジュールスイートプロジェクトを作成します。デフォルトのモジュールスイートプロジェクトには、NetBeans IDE に含まれているすべてのモジュールだけでなく、NetBeans プラットフォームに含まれているすべてのモジュールも含まれます。これらのモジュールのすべてが必要ではないため、必要のないものを除外します。

  1. 「新規プロジェクト」(Ctrl-Shift-N) ウィザードを使用して、次に示すように、「NetBeans モジュール」カテゴリのテンプレートから「モジュールスイート」プロジェクトを作成します。

    スプラッシュ画面パネル

    「次へ」をクリックしてモジュールスイートに「NetBeans HTML エディタ」という名前をつけます。「完了」をクリックします。

  2. プロジェクトノードを右クリックして「プロパティー」を選択し、モジュールスイートの「プロジェクトプロパティー」ダイアログでいくつかの変更を行います。
    • 「構築」パネルで「スタンドアロンアプリケーションを作成」をクリックし、NetBeans プラットフォーム上のリッチクライアントアプリケーションにすることを指定します。

      実行可能アプリケーションのブランド名およびタイトルバーのアプリケーションタイトルを、次のようにします。

      アプリケーションパネル

    • 「スプラッシュ画面」パネルには、次に示すように、アプリケーションのスプラッシュ画面が提供されます。

      スプラッシュ画面パネル

      スプラッシュ画面がない場合は、これを使用してください。

    • 「プロジェクトプロパティー」ダイアログの「ライブラリ」パネルに、「クラスタ」が一覧表示されます。クラスタとは、関連するモジュールの集合のことです。ここで選択する必要のあるクラスタは、ide8platform7 のみです。その他のクラスタをすべて選択解除します。
    • platform7 クラスタでは、次のモジュールのみが必要です。

      アクション API
      ブートストラップ
      コア
      コア - 実行
      コア - UI
      コア - Windows
      データシステム API
      ダイアログ API
      実行 API
      エクスプローラとプロパティーシート API
      お気に入り
      ファイルシステム API
      汎用クエリー API
      入出力 API
      JavaHelp 統合
      キーマップオプション
      Look & Feel カスタマイズライブラリ
      MIME ルックアップ API
      SystemFS の MIME ルックアップ
      マスターファイルシステム
      モジュールシステム API
      ノード API
      オプションダイアログおよび SPI
      「出力」ウィンドウ
      進捗 API
      進捗 UI
      設定 API
      設定オプション API
      起動
      Swing レイアウト拡張統合
      タブ制御
      テキスト API
      UI ユーティリティー API
      ユーティリティー API
      ウィンドウシステム API

    • ide8 クラスタでは、次のモジュールのみが必要です。

      共通パレット
      相違
      エディタ
      エディタ中括弧の照合
      エディタコード補完
      エディタコード折り畳み
      エディタで保護されたセクション
      エディタのインデント
      エディタライブラリ
      エディタライブラリ 2
      エディタの設定
      エディタの設定記憶領域
      エディタユーティリティー
      エラーストライプ API
      エラーストライプコア
      一般的なオプションダイアログパネル
      汎用言語フレームワーク
      HTML
      HTML エディタ
      HTML エディタライブラリ
      HTML 字句解析器
      IDE のデフォルト
      Image
      字句解析器
      字句解析器から NetBeans へのブリッジ
      ナビゲータ API
      プレーンエディタ
      プレーンエディタライブラリ
      プロジェクト API
      検索 API
      タグ対応エディタライブラリ

  3. ユーザーインタフェースの調整

    IDE のユーザーインタフェースを必要なだけ使用したり拒否したりできます。HTML エディタでは、「ツール」メニュー以下の項目の一部または全部はおそらく必要ありません。同様に、必要ないツールバーやツールバーボタンがある場合もあります。この節では、リッチクライアントアプリケーションに有用なものだけ残すように、IDE のユーザーインタフェースを削除します。

    1. モジュールスイートを展開し、次に示すように、「モジュール」ノードを右クリックして「新規を追加」を選択します。

      コンテキスト内のこのレイヤー

      「新規プロジェクト」(Ctrl-Shift-N) ウィザードが表示されます。プロジェクトに BrandingModule という名前を付け、「次へ」をクリックして「完了」をクリックします。

    2. ブランドモジュールの「重要なファイル」ノードで、「XML レイヤー」ノードを展開します。2 つのサブノードが展開されます。

      XML レイヤーを展開

    3. <コンテキスト内のこのレイヤー> ノードには、すべてのモジュールがレイヤーで登録する、すべてのフォルダおよびファイルがマージされた状態で表示されます。項目を除外するには、次に示すように、その項目を右クリックして「削除」を選択します。

      コンテキスト内のこのレイヤー

      次に、IDE ではモジュールの layer.xml ファイルにタグが追加されます。そのファイルにより、モジュールがインストールされるときに、削除した項目が非表示になります。たとえば、「Menu Bar/Edit」を右クリックすると、HTML エディタに必要のないメニュー項目を「編集」メニューから削除できます。これにより、layer.xml ファイルに次のようなスニペットを生成します。

      <folder name="Menu">
          <folder name="Edit">
              <file name="org-netbeans-modules-editor-MainMenuAction$StartMacroRecordingAction.instance_hidden"/>
              <file name="org-netbeans-modules-editor-MainMenuAction$StopMacroRecordingAction.instance_hidden"/>
          </folder>       
      </folder>

      前のスニペットの結果、ほかのモジュールによって提供された Start Macro Recording および Stop Macro Recording アクションが、ブランドモジュールによってメニューから削除されます。

    4. 前の手段で説明されている方式を使用して、必要な数のツールバー、ツールバーのボタン、メニュー、およびメニュー項目を非表示にします。

    ウィンドウレイアウトの調整

    <コンテキスト内のこのレイヤー> ノードを使用して、既存の項目を削除するだけではなく、それらの内容を変更することもできます。たとえば、HTML エディタは HTML ファイルを対象とします。したがって、Java ソースファイルやプロジェクトにも使用する通常の IDE とは異なり、初期レイアウトに「お気に入り」ウィンドウを表示することは理にかなっています。

    ウィンドウレイアウトの定義も、このレイヤーにファイルとして記述され、Windows2 フォルダにすべて格納されます。Windows2 フォルダ内のファイルは、ウィンドウシステム API によって定義された、擬似的に読解可能な XML ファイルです。これらはかなり複雑です。ただし次に示すように、HTML エディタのためにはこれらを完全に理解する必要はありません。

    1. ブランドモジュールの <コンテキスト内のこのレイヤー> ノードで、次に示すように、Windows2 ノードを右クリックし、「検索」を選択します。

      favorites を検索

    2. Favorites という名前のオブジェクトを検索します。大文字小文字は無視します。2 つのファイルが見つかります。

      favorites を検索

      最初のファイルはコンポーネントがどのように見えるか、またどのように作成されるかを定義します。これは変更する必要がないので、このファイルは編集する必要はありません。2 番目のファイルは目的に関わるファイルです。その内容は次のようになっています。

      <tc-ref version="2.0">
          <module name="org.netbeans.modules.favorites/1" spec="1.1" />
          <tc-id id="favorites" />
          <state opened="false" />
      </tc-ref>

    3. この XML のほとんどの意味がわからないとしても、ほかのドキュメントを読まずに理解できる箇所が 1 行だけあります。falsetrue に変更すると、そのコンポーネントをデフォルトで開くことができます。これをやってみましょう。
    4. 同様に、「コンポーネントパレット」をデフォルトで開くように、また「ナビゲータ」を閉じるように変更できます。これら両方の手順を実行します。

    これで、ブランディングモジュールに 3 つの新しいファイルが含まれていることが表示されます。変更したファイルそれぞれに 1 つです。実際には、これらのファイルは前の手順で検出したファイルをオーバーライドするため、ウィンドウのレイアウトをオーバーライドするのに必要な情報が提供されます。

    favorites を検索

    「お気に入り」ウィンドウの調整

    「ファイル」ウィンドウに表示される、モジュールスイートの branding フォルダのサブフォルダでは、NetBeans のソースで定義された文字列をオーバーライドできます。この節では、「お気に入り」ウィンドウで使用されるラベルを定義する文字列をオーバーライドします。たとえば、特に HTML ファイル用にそのウィンドウを使用するため、「お気に入り」ラベルを「HTML ファイル」に変更します。

    1. 「ファイル」ウィンドウを開き、モジュールスイートの branding フォルダを展開します。
    2. branding/modules 内に新しいフォルダ構造を作成します。新しいフォルダに org-netbeans-modules-favorites.jar という名前を付けます。そのフォルダ内に、org/netbeans/modules/favorites のフォルダ構造を作成します。最終フォルダ、つまり favorites 内に、新しい Bundle.properties ファイルを作成します。このフォルダ構造とプロパティーファイルは、「お気に入り」ウィンドウに関係する NetBeans のソースのフォルダ構造と一致します。
    3. 次のスクリーンショットに示す文字列を追加し、「お気に入り」ウィンドウのソース内の一致するプロパティーファイルで定義されている同じ文字列をオーバーライドします。

      favorites を検索

      コピーおよびペーストを簡単に行うため、これらは前で定義した文字列です。

      お気に入り=HTML ファイル
      ACT_AddOnFavoritesNode=HTML ファイルを検索(&F)
      ACT_Remove=HTML ファイルの一覧から削除(&R)
      ACT_View=HTML ファイル
      ACT_Select=HTML ファイル
      ACT_Select_Main_Menu=HTML ファイルの一覧から選択
      
      # JFileChooser
      CTL_DialogTitle=HTML ファイルの一覧に追加
      CTL_ApproveButtonText=追加
      ERR_FileDoesNotExist={0} が存在しません。
      ERR_FileDoesNotExistDlgTitle=HTML ファイルの一覧に追加
      MSG_NodeNotFound=HTML ファイルの一覧にドキュメントノードは見つかりませんでした。

    アプリケーションの実行

    アプリケーションの実行は、プロジェクトノードを右クリックしてメニュー項目を選択するのと同じくらい簡単です。

    1. アプリケーションのプロジェクトノードを右クリックし、「すべてを削除して構築」を選択します。
    2. アプリケーションのプロジェクトノードを右クリックし、「実行」を選択します。

      アプリケーションの実行

    3. アプリケーションが配備されたら、「お気に入り」ウィンドウ内を右クリックし、HTML ファイルを含むフォルダを選択します。次に、次に示すように、HTML ファイルを開くことができます。

      スプラッシュ画面パネル

    4. 更新機能の包含

      アプリケーションを拡張可能にするには、ユーザーにアプリケーションの機能を拡張するためのモジュールをインストールさせる必要があります。これを行うには、HTML エディタにプラグインマネージャーをバンドルする、いくつかの追加モジュールを有効にする必要があるだけです。

      1. モジュールスイートプロジェクトを右クリックし、「プロパティー」を選択します。「プロジェクトプロパティー」ダイアログの「ライブラリ」パネルを使用し、次に強調表示されているチェックボックスを選択します。

        アプリケーションの実行

      2. アプリケーションのプロジェクトノードを右クリックし、「すべてを削除して構築」を選択します。
      3. アプリケーションを再度実行すると、「ツール」メニューの下に「プラグイン」という名前の新しいメニュー項目が表示されます。

        スプラッシュ画面パネル

      4. 新しい「プラグイン」メニュー項目を選択し、HTML エディタで役立つプラグインをいくつかインストールします。プラグインポータルを参照し、適切なものをいくつか検索します。

      アプリケーションの配布

      IDE では、アプリケーションの起動ツールを含む ZIP ファイルと同様に、アプリケーションを Web で起動するための JNLP アプリケーションを作成できます。この節では、ZIP ファイルでのアプローチをテストします。

      1. アプリケーションのプロジェクトノードを右クリックし、次に示すように、「配布用 ZIP を構築」を選択します。

        アプリケーションの実行

        モジュールスイートの dist フォルダに ZIP ファイルが作成されます。これは「ファイル」ウィンドウで確認できます。

      2. アプリケーションを展開すると、次のようになります。

        アプリケーションの実行

        注: アプリケーションの起動ツールは、前に示すように、bin フォルダに作成されます。


      3. 共有の NetBeans JNLP リポジトリからの HTML エディタの配布

        最後に、アプリケーションを最初に起動したときに生成される master.jnlp ファイルをチューニングします。作業を行なっていても、まだ配布の準備は整っていません。少なくとも、情報セクションを変更して、より良い説明やアイコンを提供する必要があります。

        標準 JNLP インフラストラクチャーに対するほかの変更は、www.netbeans.org での共有 JNLP リポジトリの使用です。デフォルトでは、スイート用に生成される JNLP アプリケーションには、常に、そのすべてのモジュールと依存するすべてのモジュールが含まれます。これはイントラネットでの使用時に便利な場合もありますが、幅広くインターネットで使用する場合には、やや実用性に欠けることがあります。インターネットの場合、NetBeans プラットフォームに構築されたすべてのアプリケーションは、NetBeans モジュールの 1 つのリポジトリを参照するほうがよいでしょう。これは、そのようなモジュールは共有されるため、何度もダウンロードする必要がないからです。

        NetBeans 6.0 にはこのようなリポジトリがあります。NetBeans IDE が提供しているモジュールをすべて含んでいるわけではありませんが、今回の HTML エディタのような IDE アプリケーション以外のアプリケーションを作成するには十分です (課題 112726 を参照)。 このリポジトリを使用するには、正しい URL を追加して、platform.properties を変更するだけです。

        # netbeans.org の共通のリポジトリからライブラリを共有
        # この URL は release60 JNLP ファイル専用:
        jnlp.platform.codebase=http://www.netbeans.org/download/6_0/jnlp/
        

        アプリケーションが JNLP アプリケーションとして起動されるとすぐに、すべての共有プラグインモジュールが netbeans.org から読み込まれ、同様のアプリケーション間で共有されます。




        次の手順

        このチュートリアルではたくさんの優れたトリックを勉強しました。NetBeans プラットフォーム上に動作アプリケーションを構築し、XML レイヤーノードのサブノードにも目を通しました。希望どおりの動作を正確に行う堅牢で合理的なアプリケーションになるまで変更や調整を行い、少ない労力で継続してチューニングできます。次に、独自のモジュールを、アプリケーションにいかに簡単に追加できるかを学習します。NetBeans プラグインモジュールとリッチクライアントアプリケーション開発のチュートリアルでは、HTML エディタを拡張するためのさまざまな使用例を説明しています。たとえば、メニューバーに独自のメニュー項目を追加したい場合があるかもしれません。または、コンポーネントパレットに、追加の HTML スニペットを提供したい場合があるかもしれません。この両方のシナリオおよびその他の概要は、モジュール開発者リソースのチュートリアルで説明されています。

        また、独自のペイントアプリケーションの作成方法を示す NetBeans IDE 6.0 ペイントアプリケーションのチュートリアルも参照してください。最後に、さらに複雑なアプリケーションについては、NetBeans IDE 6.0 フィードリーダーのチュートリアルに説明があります。



Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Virtual Box - full virtualizer  Open ESB - The Open Enterprise Service Bus Powered by